From a2d86af130f86346769268b247db0ac9c8e31354 Mon Sep 17 00:00:00 2001
From: Vasileios Pasialiokis <whiterocket@outlook.com>
Date: Sun, 26 May 2019 01:47:14 +0300
Subject: [PATCH] patch makefile, restore compile.sh

---
 makefile => Makefile |   2 +-
 compile.sh           | 157 +++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 158 insertions(+), 1 deletion(-)
 rename makefile => Makefile (92%)
 create mode 100755 compile.sh

diff --git a/makefile b/Makefile
similarity index 92%
rename from makefile
rename to Makefile
index c2621728c51..01b6ad76a42 100644
--- a/makefile
+++ b/Makefile
@@ -30,7 +30,7 @@ bin/FC_pregmod.html: bin/FC_pregmod_tmp
 	mv $< $@
 
 bin/FC_pregmod_tmp: src/gui/mainMenu/AlphaDisclaimer.tw
-	$(TWEEGO) -o $@ src/ --head devTools/head.html
+	TWEEGO_PATH=devTools/tweeGo/storyFormats $(TWEEGO) -o $@ src/ --head devTools/head.html
 	./devTools/embed_favicon.py $@
 
 src/gui/mainMenu/AlphaDisclaimer.tw:
diff --git a/compile.sh b/compile.sh
new file mode 100755
index 00000000000..2c4a6fc90af
--- /dev/null
+++ b/compile.sh
@@ -0,0 +1,157 @@
+#!/bin/bash
+
+output=/dev/stdout
+
+# displays help text
+function displayHelp {
+  cat << HelpText
+Usage: compile.sh [OPTION]...
+
+Options:
+  -d, --dry      Do not compile
+  -g, --git      Add hash of HEAD to filename
+  -h, --help     Show this help text
+  -j, --java     Run sanityCheck based on java (recommended)
+  -p, --python   Run sanityCheck based on python
+  -q, --quiet    Suppress terminal output
+HelpText
+}
+
+#display an error message
+function echoError {
+	echo -e "\033[0;31m$@\033[0m"
+}
+
+#display message
+function echoMessage {
+	echo "$1" > "${output}"
+}
+
+#compile the HTML file
+function compile {
+
+	mkdir -p bin
+
+	export TWEEGO_PATH=devTools/tweeGo/storyFormats
+	TWEEGO_EXE="tweego"
+
+	if hash $TWEEGO_EXE 2>/dev/null; then
+		echoMessage "system tweego binary"
+	else
+		case "$(uname -m)" in
+		x86_64|amd64)
+			echoMessage "x64 arch"
+			if [ "$(uname -s)" = "Darwin" ]; then
+				TWEEGO_EXE="./devTools/tweeGo/tweego_osx64"
+			else
+				TWEEGO_EXE="./devTools/tweeGo/tweego_nix64"
+			fi
+			;;
+		x86|i[3-6]86)
+			echoMessage "x86 arch"
+			if [ "$(uname -s)" = "Darwin" ]; then
+				TWEEGO_EXE="./devTools/tweeGo/tweego_osx86"
+			else
+				TWEEGO_EXE="./devTools/tweeGo/tweego_nix86"
+			fi
+			;;
+		*)
+			echoError "No system tweego binary found, and no precompiled binary for your platform available."
+			echoError "Please compile tweego and put the executable in PATH."
+			exit 2
+		esac
+	fi
+
+	if [[ "$usehash" ]]; then
+		HASH="$(git rev-list -n 1 --abbrev-commit HEAD)"
+
+		$TWEEGO_EXE -o "bin/FC_pregmod_${HASH}_tmp.html" src/ --head devTools/head.html || build_failed="true"
+
+		if [ "$build_failed" = "true" ]
+		then
+			echoError "Build failed."
+			exit 1
+		fi
+
+		#Make the output prettier, replacing \t with a tab and \n with a newline
+		sed -i -e '/^<div id="store-area".*$/s/\\t/\t/g' -e '/^<div id="store-area".*$/s/\\n/\n/g'  "bin/FC_pregmod_${HASH}_tmp.html" \
+			&& mv "bin/FC_pregmod_${HASH}_tmp.html" "bin/FC_pregmod_${HASH}.html"
+
+		ln -s ../resources bin/ 2> /dev/null
+
+		echoMessage "Saved to bin/FC_pregmod_$HASH.html."
+
+	else
+		# Find and insert current commit
+		COMMIT=$(git rev-parse --short HEAD)
+		sed -Ei "s/build .releaseID/\0 commit $COMMIT/" src/gui/mainMenu/AlphaDisclaimer.tw
+
+		$TWEEGO_EXE -o "bin/FC_pregmod_tmp.html" src/ --head devTools/head.html || build_failed="true"
+
+		# Revert AlphaDisclaimer for next compilation
+		git checkout -- src/gui/mainMenu/AlphaDisclaimer.tw
+
+		if [ "$build_failed" = "true" ]
+		then
+			echoError "Build failed."
+			exit 1
+		fi
+
+		#Make the output prettier, replacing \t with a tab and \n with a newline
+		sed -i -e '/^.*<div id="store-area".*$/s/\\t/\t/g' -e '/^.*<div id="store-area".*$/s/\\n/\n/g' bin/FC_pregmod_tmp.html \
+			&& mv bin/FC_pregmod_tmp.html bin/FC_pregmod.html
+
+		ln -s ../resources bin/ 2> /dev/null
+
+		echoMessage "Saved to bin/FC_pregmod.html."
+	fi
+}
+
+if [[ "$1" == "" ]]; then
+	#tip if no option
+	echoMessage "For more options see compile.sh -h."
+else
+	#parse options
+	while [[ "$1" ]]
+	do
+		case $1 in
+		-d|--dry)
+			dry="true"
+		;;
+		-g|--git)
+			usehash="true"
+		;;
+		-h|--help)
+			displayHelp
+			exit 0
+		;;
+		-j|--java)
+			java="true"
+		;;
+		-p|--python)
+			python="true"
+		;;
+		-q|--quiet)
+			output=/dev/null
+		;;
+		*)
+			echoError "Unknown argument $1."
+			displayHelp
+			exit 1
+		esac
+		shift
+	done
+fi
+
+# Run sanity check.
+[ -n "$java" ] && ./sanityCheck.sh java
+
+[ -n "$python" ] && ./sanityCheck.sh
+
+#compile
+if [[ "$dry" ]]; then
+	echoMessage "Dry run finished."
+else
+	compile
+	echoMessage "Compilation finished."
+fi
-- 
GitLab