generated from arras-energy/gridlabd-old
-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathbuild_number
executable file
·74 lines (70 loc) · 2.91 KB
/
build_number
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
#
# Syntax: build_number <path-to-core/build.h>
#
if [ "$(basename $0)" != "build_number" ]; then
echo "ERROR [build_number]: cannot be called as a script"
exit 1
fi
EXE=$0
TOP=$(cd ${EXE/build_number/..}; pwd)
VER="$TOP/build-aux/version.sh"
FIL="$TOP/source/build.h"
if [ -d $TOP/.git ]; then
# git info is available
if [ -f "$FIL" ]; then
LAST_STAMP=$(head -n 1 < $FIL | cut -f3- -d' ')
fi
THIS_STAMP=$($VER --number)
if [ "${LAST_STAMP:-none}" != "$THIS_STAMP" ]; then
echo "// $FIL $THIS_STAMP" > $FIL
echo "#define BUILDNUM $THIS_STAMP" >> $FIL
echo "#define BRANCH \"$($VER --branch)\"" >> $FIL
echo "#define REV_YEAR $(date '+%Y')" >> $FIL
echo "#define BUILD_NAME \"$(git remote | head -n 1)\"" >> $FIL
echo "#define BUILD_URL \"$(git remote -v | head -n 1 | cut -f1 -d' ' | cut -f2 | sed -e 's/\.git//')\"" >> $FIL
echo "#define BUILD_ORIGIN \"$(git remote -v | head -n 1 | cut -f1 -d' ' | cut -f2 | sed -e 's/\.git//' | cut -f4- -d/)\"" >> $FIL
echo "#define BUILD_BRANCH \"$(git rev-parse --abbrev-ref HEAD | tr -d '\n' )\"" >> $FIL
echo "#define BUILD_SYSTEM \"$(uname -s)\"" >> $FIL
echo "#define BUILD_RELEASE \"$(uname -sr)\"" >> $FIL
echo "#define BUILD_ID \"$(git log -n 1 | sed -n '1s/^commit //p')\"" >> $FIL
echo "#define BUILD_OPTIONS \"\"" >> $FIL
echo "#define BUILD_STATUS $(git status -b --porcelain | sed s'/"//g' | sed -e 's/^/\"/g;s/$/\\n\"\\/g';echo \"\")" >> $FIL
if [ "$(uname -s)" == "Linux" ]; then
. /etc/os-release
echo "#define HOST_OS \"${ID}_${VERSION_ID%.*}\"" >> $FIL
echo "#define HOST_CPU \"$(uname -m)\"" >> $FIL
else
echo "#define HOST_OS \"$(uname -s | tr A-Z a-z)_$(uname -r | cut -f1 -d.)\"" >> $FIL
echo "#define HOST_CPU \"$(uname -m)\"" >> $FIL
fi
fi
else
# no git info available
if [ -f "$FIL" ]; then
LAST_STAMP=$(head -n 1 < $FIL | cut -f3- -d' ')
fi
THIS_STAMP=$(date '+%Y-%m-%d %H:%M:%S %z')
if [ "${LAST_STAMP:-none}" != "$THIS_STAMP" ]; then
echo "// $FIL $THIS_STAMP" > $FIL
echo "#define BUILDNUM $(echo $THIS_STAMP | cut -c3,4,6,7,9,10)" >> $FIL
echo "#define BRANCH \"<unknown>\"" >> $FIL
echo "#define REV_YEAR $(date '+%Y')" >> $FIL
echo "#define BUILD_NAME \"download\"" >> $FIL
echo "#define BUILD_URL \"http://source.gridlabd.us/\"" >> $FIL
echo "#define BUILD_ORIGIN \"arras-energy/gridlabd\"" >> $FIL
echo "#define BUILD_BRANCH \"<unknown>\"" >> $FIL
echo "#define BUILD_SYSTEM \"$(uname -s)\"" >> $FIL
echo "#define BUILD_RELEASE \"$(uname -sr)\"" >> $FIL
echo "#define BUILD_ID \"<unknown>\"" >> $FIL
echo "#define BUILD_OPTIONS \"\"" >> $FIL
echo "#define BUILD_STATUS \"\"" >> $FIL
if [ "$(uname -s)" == "Linux" ]; then
. /etc/os-release
echo "#define HOST_OS \"${ID}_${VERSION_ID%.*}\"" >> $FIL
echo "#define HOST_CPU \"$(uname -m)\"" >> $FIL
else
echo "#define HOST_OS \"$(uname -s | tr A-Z a-z)_$(uname -r | cut -f1 -d.)\"" >> $FIL
echo "#define HOST_CPU \"$(uname -m)\"" >> $FIL
fi
fi
fi