Forked from
pregmodfan / fc-pregmod
17774 commits behind the upstream repository.
-
Pregmodder authoredPregmodder authored
compile.sh 3.18 KiB
#!/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
-s, --sanity Run sanityCheck
-q, --quiet Suppress terminal output
-t, --themes Generate theme files
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/resources
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"
elif [ "$OSTYPE" = "msys" ]; then
TWEEGO_EXE="./devTools/tweeGo/tweego_win64"
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"
elif [ "$OSTYPE" = "msys" ]; then
TWEEGO_EXE="./devTools/tweeGo/tweego_win86"
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
file="bin/FC_pregmod.html"
if [[ -d .git ]]; then
COMMIT=$(git rev-parse --short HEAD) # Find and insert current commit
printf "App.Version.commitHash = '%s';\n" ${COMMIT} > src/002-config/fc-version.js.commitHash.js
if [[ "$usehash" ]]; then
file="bin/FC_pregmod_${COMMIT}.html"
fi
fi
devTools/concatFiles.sh js/ '*.js' bin/fc.js
$TWEEGO_EXE -o $file --module=bin/fc.js --head devTools/head.html src/ || build_failed="true"
rm -f bin/fc.js
if [ "$build_failed" = "true" ]; then
echoError "Build failed."
exit 1
fi
if [[ -d .git ]]; then
rm src/002-config/fc-version.js.commitHash.js
fi
echoMessage "Saved to $file."
}
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
;;
-s | --sanity)
sanity="true"
;;
-q | --quiet)
output=/dev/null
;;
-t | --themes)
themes="true"
;;
*)
echoError "Unknown argument $1."
displayHelp
exit 1
;;
esac
shift
done
fi
# Run sanity check.
[ -n "$sanity" ] && ./sanityCheck.sh
if ! [[ -d .git ]]; then
echoMessage "No git repository. Git specific actions disabled."
fi
#compile
if [[ "$dry" ]]; then
echoMessage "Dry run finished."
else
compile
echoMessage "Compilation finished."
fi
# compile themes
if [[ "$themes" ]]; then
(
cd themes/ || exit
for D in *; do
if [ -d "${D}" ]; then
../devTools/concatFiles.sh "${D}"/ '*.css' ../bin/"${D}".css
fi
done
)
echoMessage "Themes compiled"
fi