File: make_git_source_version.sh

package info (click to toggle)
duma 2.5.21-11
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 2,460 kB
  • sloc: ansic: 5,512; cpp: 2,205; makefile: 441; javascript: 191; sh: 129
file content (71 lines) | stat: -rwxr-xr-x 1,849 bytes parent folder | download
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
#!/usr/bin/env sh

if [ -f "./.release" ]; then
	export RELEASED=1
	export RELENG="prepared"
else
	export RELENG="built"
fi
rm -f ./.release 2> /dev/null

get_git_info()
{
	if command command true 2> /dev/null 1>&2; then
		if command git version 2> /dev/null 1>&2; then
			GITTEST=$(git version 2> /dev/null)
			# shellcheck disable=SC2236
			if [ -n "${GITTEST}" ] && [ ! -z "${GITTEST}" ]; then
				BRANCH=$(git branch --show-current 2> /dev/null)
				if [ -n "${RELEASED}" ] && [ ! -z "${RELEASED}" ]; then
					GITVER=$(git describe --tags --always 2> /dev/null \
						| cut -d "-" -f 1 2> /dev/null)
				else
					GITVER=$(git describe --tags --dirty --broken --long --always \
						2> /dev/null)
				fi

				if [ ! -n "${BRANCH}" ] || [ -z "${BRANCH}" ]; then
					BRANCH="nobranch"
				fi

				if [ ! -n "${RELEASED}" ] && [ -z "${RELEASED}" ]; then
					if [ -n "${GITVER}" ] && [ ! -z "${GITVER}" ]; then
						GIT_OUT=" ${GITVER}-${BRANCH}"
					fi
				fi
				if [ -n "${GITVER}" ] && [ ! -z "${GITVER}" ]; then
					GIT_OUT=" ${GITVER}"
				fi
			fi
		fi
	fi

	GIT_SOURCE_INFO="DUMA${GIT_OUT}"
	GIT_SOURCE_XFRM=$(printf '%s\n' "${GIT_SOURCE_INFO}" \
		| sed -e 's/\VERSION_//' -e 's/_/\./g' 2> /dev/null)

	# shellcheck disable=SC2236
	if [ -n "${GIT_SOURCE_XFRM}" ] && [ ! -z "${GIT_SOURCE_XFRM}" ]; then
		printf '%s\n' "${GIT_SOURCE_XFRM}"
	else
		printf '%s\n' "${GIT_SOURCE_INFO}"
	fi
}

get_utc_date()
{
	UTC_DATE=$(TZ=UTC __DATE__ -u "+%D %T" 2> /dev/null)
	# shellcheck disable=SC2236
	if [ -n "${UTC_DATE}" ] && [ ! -z "${UTC_DATE}" ]; then
		UTC_DATE_INFO=", ${RELENG} ${UTC_DATE}"
	else
		UTC_DATE_INFO=""
	fi
	printf '%s\n' "${UTC_DATE_INFO}"
}

BUILD_VER=$(get_git_info)
BUILD_UTC=$(get_utc_date)

printf '%s\n' "// Auto-generated git information."
printf '%s\n' "#define GIT_SOURCE_VERSION \"${BUILD_VER}${BUILD_UTC} (\""