From 1f75fcb399a0c2fb5bb35393ab2b7a0b6bfb912d Mon Sep 17 00:00:00 2001
From: "alexander.kravchenko" <alexander.kravchenko@demlabs.net>
Date: Wed, 19 Aug 2020 13:36:15 +0500
Subject: [PATCH] Added static build support

---
 prod_build/general/chroot_wrap.sh | 16 ++++++++++++----
 prod_build/general/conf/publish   |  1 +
 prod_build/general/mod-handler.sh | 20 ++++++++++++++++++++
 3 files changed, 33 insertions(+), 4 deletions(-)
 create mode 100644 prod_build/general/conf/publish
 create mode 100755 prod_build/general/mod-handler.sh

diff --git a/prod_build/general/chroot_wrap.sh b/prod_build/general/chroot_wrap.sh
index b0b57472a..6ac25387d 100755
--- a/prod_build/general/chroot_wrap.sh
+++ b/prod_build/general/chroot_wrap.sh
@@ -7,24 +7,32 @@ CHROOT_PREFIX="builder"
 CHROOTS_PATH=$1
 PLATFORMS=""
 PKG_FORMAT=$3
-SRC_PATH=$4
-JOB=$5
+JOB=$4
 
+export wd=$(pwd)
 cd $SRC_PATH
-echo "workdir is $(pwd)"
+echo "workdir is $wd"
 . prod_build/general/pre-build.sh
 export_variables "./prod_build/general/conf/*"
+. prod_build/general/mod-handler.sh
+mod_handler $MOD
 
 IFS=' '
 echo "$PLATFORM_CANDIDATES"
 echo $IMPLEMENTED
+
 for platform in $PLATFORM_CANDIDATES; do
 	[[ $(echo $IMPLEMENTED | grep $platform) != "" ]] && PLATFORMS="$PLATFORMS$platform " || echo "Platform $platform is not implemented in this project yet. Sorry"
 done
-echo "Platforms are $PLATFORMS"
+[[ $PLATFORMS != "" ]] && PLATFORMS=$(echo $PLATFORMS | sed 's/ $//')
+echo "Platforms are $PLATFORMS there"
 
 for platform in $PLATFORMS; do
 	echo "Working with $platform now"
+	PLATFORM_UPPERCASED=$( echo "$platform" | tr '[:lower:]' '[:upper:]')
+	ENV=${PLATFORM_UPPERCASED}_ENV
+	varpack = $( export | grep $PLATFORM_UPPERCASED | awk '{print $3}')
+	[[ $platform == "linux" ]] && platform="linux/debian"
 	export_variables "./prod_build/$platform/conf/*"
 	IFS=' '
 	PKG_TYPE=$(echo $PKG_FORMAT | cut -d ' ' -f1)
diff --git a/prod_build/general/conf/publish b/prod_build/general/conf/publish
new file mode 100644
index 000000000..bd6ef13f3
--- /dev/null
+++ b/prod_build/general/conf/publish
@@ -0,0 +1 @@
+MOD="static"
diff --git a/prod_build/general/mod-handler.sh b/prod_build/general/mod-handler.sh
new file mode 100755
index 000000000..57a7613b4
--- /dev/null
+++ b/prod_build/general/mod-handler.sh
@@ -0,0 +1,20 @@
+mod_handler() {
+
+MODLIST=$1
+IFS=' '
+for mod in $MODLIST; do
+	case $mod in
+		"blank") 
+			sed -ibak "s/^#DAP_BLANK/DAP_BLANK/" config.pri || sed -ibak "s/^DAP_BLANK/#DAP_BLANK/" config.pri # For toggling blank mode in general scripts.
+			;;
+		"static")
+			[[ $(echo "$PLATFORM_CANDIDATES" | grep "linux") != "" ]] && sed -ibak "/static/s/^#unix/unix/" config.pri && [ ! -z "ICU_LINUX_PATH" ] && sed -ibak "s!ICU_LINUX_PATH!$ICU_LINUX_PATH!" config.pri && \
+			PLATFORM_CANDIDATES=$( echo $PLATFORM_CANDIDATES | sed "s/linux\/[a-z]\+ \?//g" | sed "s/$/ linux/" | sed "s/^ //") || sed -ibak "/static/s/^unix/#unix/" config.pri #For toggling static mode
+			;;
+		*)
+			echo "No handling required for mod $mod. Proceeding"
+			;;
+	esac
+done
+IFS='\n'
+}
-- 
GitLab