summaryrefslogtreecommitdiffhomepage
path: root/build/mkrevision.sh
blob: 02b7fa3710dfffc8ab1f2d7fd7b7ebc2e9a58689 (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
#!/bin/sh

TOPDIR="${0%mkrevision.sh}"

[ -d "$TOPDIR/../build" ] || {
	echo "Please execute as ./build/mkrevision.sh" >&2
	exit 1
}

(
	cd "$TOPDIR"
	if svn info >/dev/null 2>/dev/null; then
		revision="svn-r$(LC_ALL=C svn info | sed -ne 's/^Revision: //p')"
	elif git log -1 >/dev/null 2>/dev/null; then
		revision="svn-r$(LC_ALL=C git log -1 | sed -ne 's/.*git-svn-id: .*@\([0-9]\+\) .*/\1/p')"
		if [ "$revision" = "svn-r" ]; then
			set -- $(git log -1 --format="%ct %h")
			secs="$(($1 % 86400))"
			yday="$(date --utc --date="@$1" "+%y.%j")"
			revision="$(printf 'git-%s.%05d-%s' "$yday" "$secs" "$2")"
		fi
	else
		revision="unknown"
	fi

	echo "$revision"
)