summaryrefslogtreecommitdiffstats
path: root/debian/_buildscripts/local/scripts/_build_common.sh
blob: 72649dc89b455dcb114ea9a9da8f92d019a70fdb (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
#!/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"))
	
	# 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 1
	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 2
	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 3
	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 4
	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`"
}