summaryrefslogtreecommitdiffstats
path: root/debian/_buildscripts/local/scripts/_build_common.sh
blob: 60f589acf51abacfee6c36800f23b17363f4a1fc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
#!/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
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'


#----------------------------
function init_common()
{
	# Check script folder
	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/build_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/_build_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
  
  SCRIPT_LOG_DIR=$TDE_DIR/$CFG_SCRIPT_LOG_DIR
	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`"
}