summaryrefslogtreecommitdiffstats
path: root/debian/_buildscripts/local/scripts/internals/_build_common.sh
diff options
context:
space:
mode:
Diffstat (limited to 'debian/_buildscripts/local/scripts/internals/_build_common.sh')
-rwxr-xr-xdebian/_buildscripts/local/scripts/internals/_build_common.sh162
1 files changed, 162 insertions, 0 deletions
diff --git a/debian/_buildscripts/local/scripts/internals/_build_common.sh b/debian/_buildscripts/local/scripts/internals/_build_common.sh
new file mode 100755
index 000000000..c692ac26c
--- /dev/null
+++ b/debian/_buildscripts/local/scripts/internals/_build_common.sh
@@ -0,0 +1,162 @@
+#!/bin/bash
+
+
+#----------------------------
+#----------------------------
+# Color table
+# Black 0;30 Dark Gray 1;30
+# Blue 0;34 Light Blue 1;34
+# Green 0;32 Light Green 1;32
+# Cyan 0;36 Light Cyan 1;36
+# Red 0;31 Light Red 1;31
+# Purple 0;35 Light Purple 1;35
+# Brown 0;33 Yellow 1;33
+# Light Gray 0;37 White 1;37
+# No Color 0
+set -a
+CBlack='\e[0;30m'
+CDarkGray='\e[1;30m'
+CBlue='\e[0;34m'
+CLightBlue='\e[1;34m'
+CGreen='\e[0;32m'
+CLightGreen='\e[1;32m'
+CCyan='\e[0;36m'
+CLightCyan='\e[1;36m'
+CRed='\e[0;31m'
+CLightRed='\e[1;31m'
+CPurple='\e[0;35m'
+CLightPurple='\e[1;35m'
+CBrown='\e[0;33m'
+CYellow='\e[1;33m'
+CGray='\e[0;37m'
+CWhite='\e[1;37m'
+CNone='\e[0m'
+set +a
+
+#----------------------------
+function init_common()
+{
+ # Check script folder
+ export SCRIPT_DIR=$(dirname $(readlink -f "$0"))
+
+ # Prevent the script to be run from TDE packaging repo
+ REPO_URL=$(git config --get remote.origin.url 2>/dev/null)
+ if [ ! -z "$REPO_URL" ] && [ -z "${REPO_URL##*tde-packaging}" ]; then
+ echo -e "${CYellow} --- ERROR ---${CNone}"
+ echo "This script cannot be run from the TDE packaging repository."
+ echo "Please follow the instructions provided, then rerun this script."
+ exit 1
+ fi
+
+ # Read config settings
+ CFG_FILE=$SCRIPT_DIR/_config.sh
+ if [ -f "$CFG_FILE" ]; then
+ . "$CFG_FILE"
+ else
+ echo -e "${CYellow} --- NOTE ---${CNone}"
+ echo "Creating TDE build configuration file from template as $CFG_FILE."
+ echo "Please check and modify as required, then rerun this script."
+ cp "$SCRIPT_DIR/internals/_config_template.sh" "$CFG_FILE"
+ exit 2
+ fi
+
+ # TDE root folder must exist
+ if [ ! -d "$TDE_DIR" ]; then
+ echo -e "${CYellow} --- ERROR ---${CNone}"
+ echo "A valid TDE root folder could not be located. Something is wrong with your configuration"
+ echo "in the config file $CFG_FILE"
+ echo "Please check and modify the TDE_DIR variable as required, then rerun this script."
+ exit 3
+ fi
+
+ # Search for main TDE repo
+ cd "$TDE_DIR/$CFG_GIT_TDE_MAIN" &>/dev/null
+ CURR_DIR=$(git rev-parse --show-toplevel 2>/dev/null)
+ if [ -z "$CURR_DIR" ]; then
+ echo -e "${CYellow} --- ERROR ---${CNone}"
+ echo "Main TDE repo could not be located. Something is wrong with your configuration"
+ echo "in the config file $CFG_FILE"
+ echo "Please check and modify the TDE_DIR variable as required, then rerun this script."
+ exit 4
+ fi
+
+ # Search for TDE packaging repo
+ cd "$TDE_DIR/$CFG_GIT_TDE_PACKAGING" &>/dev/null
+ CURR_DIR=$(git rev-parse --show-toplevel 2>/dev/null)
+ if [ -z "$CURR_DIR" ]; then
+ echo -e "${CYellow} --- ERROR ---${CNone}"
+ echo "TDE packaging repo could not be located. Something is wrong with your configuration"
+ echo "in the config file $CFG_FILE"
+ echo "Please check and modify the TDE_DIR variable as required, then rerun this script."
+ exit 5
+ fi
+
+ # Make sure we have selected a supported distribution
+ DISTS_FILE=$SCRIPT_DIR/internals/distro_list.txt
+ if [ ! -f "$DISTS_FILE" ]; then
+ echo -e "${CYellow} --- NOTE ---${CNone}"
+ echo "Could not find the list of supported distributions."
+ echo "Please check the file $DISTS_FILE exists, then rerun this script."
+ exit 6
+ fi
+ export DISTRO_FOUND=${DISTRO_FOUND:-"n"}
+ if [ "$DISTRO_FOUND" != "y" ]; then
+ # Need to use a "here string" otherwise if the DISTRO_FOUND value is modified
+ # inside the while loop, this would not remember after the loop.
+ while read l_distro l_version l_name l_rel_suffix; do
+ if [ "$l_distro" = "$DISTRO" -a "$l_name" = "$DISTRO_NAME" ]; then
+ export DISTRO_FOUND="y"
+ export DISTRO_VERSION="$l_version"
+ export REL_SUFFIX="$l_rel_suffix"
+ break
+ fi
+ done <<< $(cat $DISTS_FILE | grep -E "^(\s*[^#\s]+\s+[^\s]+.*)$")
+ fi
+ if [ "$DISTRO_FOUND" != "y" ]; then
+ echo -e "${CYellow} --- NOTE ---${CNone}"
+ echo "The specified distribution ($DISTRO $DISTRO_NAME) is not supported."
+ echo "Something is wrong with your configuration ($CFG_FILE)"
+ echo "or with the list of supported distributions ($DISTS_FILE)."
+ echo "Please check the DISTRO and DISTRO_NAME variables, then rerun this script."
+ exit 7
+ fi
+
+ export SCRIPT_LOG_DIR=$TDE_DIR/$CFG_SCRIPT_LOG_DIR
+ export LOG_RESULT_FILENAME="$SCRIPT_LOG_DIR/build_result.log" # Log result into the common build logfile
+
+ cd "$SCRIPT_DIR"
+}
+
+
+#----------------------------
+# Save execution start time
+# Parameters:
+# $1 - timer number
+function exec_time_start()
+{
+ _ET_start_var="_ET_start_$1"
+ eval "$_ET_start_var=`date +%s.%N`"
+}
+
+
+#----------------------------
+# Save execution stop time and set $2 to the execution time
+# in the format: dd/hh:mm:ss.mmm
+# Parameters:
+# $1 - timer number
+# $2 - result variable name
+function exec_time_stop()
+{
+ _ET_start_var="_ET_start_$1"
+ _ET_stop_var="_ET_stop_$1"
+ eval "$_ET_stop_var=`date +%s.%N`"
+ _ET_diff=`echo "${!_ET_stop_var} - ${!_ET_start_var}" | bc`
+ _ET_days=`echo "$_ET_diff/86400" | bc`
+ _ET_diff_day=`echo "$_ET_diff-86400*$_ET_days" | bc`
+ _ET_hours=`echo "$_ET_diff_day/3600" | bc`
+ _ET_diff_hour=`echo "$_ET_diff_day-3600*$_ET_hours" | bc`
+ _ET_mins=`echo "$_ET_diff_hour/60" | bc`
+ _ET_secs=`echo "$_ET_diff_hour-60*$_ET_mins" | bc`
+ local _resultvar=$2
+ eval "$_resultvar=`printf \"%02d/%02d:%02d:%06.3f\" $_ET_days $_ET_hours $_ET_mins $_ET_secs`"
+}