# gets a Godot release, fetches export templates,
# and builds a project with its native export options
+################################################################################
PWD=`pwd`
DIR_DOWNLOAD=$PWD/download
DIR_TEMPLATES=$DIR_DOWNLOAD/templates
GODOT=$DIR_DOWNLOAD/$GODOT_EXE
+################################################################################
# get Godot
+
[[ -d $DIR_DOWNLOAD ]] || mkpath -p $DIR_DOWNLOAD
[[ -f $DIR_DOWNLOAD/$GODOT_ZIP ]] || wget -P $DIR_DOWNLOAD $GODOT_URI
[[ -f $DIR_DOWNLOAD/$GODOT_EXE ]] || unzip $DIR_DOWNLOAD/$GODOT_ZIP -d $DIR_DOWNLOAD
echo Godot version - $($GODOT --headless --version)
+################################################################################
# get export templates
+
[[ -f $DIR_DOWNLOAD/$GODOT_EXPORT_TEMPLATES ]] || wget -P $DIR_DOWNLOAD $GODOT_TEMPLATE_URI
[[ -d $DIR_TEMPLATES ]] || unzip -d $DIR_DOWNLOAD $DIR_DOWNLOAD/$GODOT_EXPORT_TEMPLATES
then
mkdir -p $LOCAL_TEMPLATES
cp $DIR_TEMPLATES/* $LOCAL_TEMPLATES
- # TODO: leaves extra stuff
+ # TODO: leaves extra copy of templates
fi
echo Godot export template version - $GODOT_TEMPLATE_VERSION
echo Local templates - $LOCAL_TEMPLATES
+################################################################################
# execute project build
-PLATFORM=macOS
-[[ -d $DIR_RELEASE/$PLATFORM ]] || mkdir -p $DIR_RELEASE/$PLATFORM
-[[ -d $DIR_DEBUG/$PLATFORM ]] || mkdir -p $DIR_DEBUG/$PLATFORM
-echo Starting project build
-$GODOT --headless --export-debug --path $DIR_PROJECT $PLATFORM $DIR_DEBUG/$PLATFORM/wolf-seeking-sheep.dmg
+# iterate through all build types present in config file
+EXPORT_PRESETS_CFG=$DIR_PROJECT/export_presets.cfg
+EXPORT_NAMES=$(awk -F= '$1=="name"{print $2}' $EXPORT_PRESETS_CFG | sed 's/"//g')
+GODOT_OPTS="--headless --path $DIR_PROJECT"
+
+for EXPORT_NAME in $EXPORT_NAMES
+do
+ echo
+ echo Starting project build for export $EXPORT_NAME
+
+ # create build folders
+ [[ -d $DIR_RELEASE/$EXPORT_NAME ]] || mkdir -p $DIR_RELEASE/$EXPORT_NAME
+ [[ -d $DIR_DEBUG/$EXPORT_NAME ]] || mkdir -p $DIR_DEBUG/$EXPORT_NAME
+
+ # get export name from config file
+ EXPORT_FNAME=$(awk -vname=${EXPORT_NAME} -F= \
+ '$1=="name" && $2~name{f=1} f==1 && $1=="export_path"{print $2;exit}' \
+ $EXPORT_PRESETS_CFG | sed -e 's|^.*/||' -e 's/"//g')
+
+ # do build!
+ echo $GODOT $GODOT_OPTS --export-debug "$EXPORT_NAME" $DIR_DEBUG/$EXPORT_NAME/$EXPORT_FNAME
+ $GODOT $GODOT_OPTS --export-debug "$EXPORT_NAME" $DIR_DEBUG/$EXPORT_NAME/$EXPORT_FNAME
+ echo $GODOT $GODOT_OPTS --export-release "$EXPORT_NAME" $DIR_RELEASE/$EXPORT_NAME/$EXPORT_FNAME
+ $GODOT $GODOT_OPTS --export-release "$EXPORT_NAME" $DIR_RELEASE/$EXPORT_NAME/$EXPORT_FNAME
+done