summaryrefslogtreecommitdiff
path: root/sysinfo/version.sh
blob: 8157765ecc24489094b43f40c5d950a24381a062 (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
#!/bin/sh

usage()
{
cat << EOF >&2

Usage:
  -h            show this HELP message
  -s  SRCDIR    set source directory
  -o  OUTPUT    set output header
  -p  PREFIX    set macro prefix

EOF
exit 1
}


# one
workdir=$(pwd)
srcdir=
output=
prefix=


while getopts "hs:o:p:" opt; do
	case $opt in
	h)
  		usage
  		;;
	s)
    		srcdir="$OPTARG"
    		;;
	o)
    		output="$OPTARG"
    		;;
	p)
    		prefix="$OPTARG"
    		;;
	\?)
    		printf "Invalid option: -%s" "$OPTARG" >&2
    		usage
    		;;
	esac
done


# two
if [ -z "$srcdir" ] || [ -z "$output" ] || [ -z "$prefix" ]; then
	usage
fi

cd "$srcdir" || exit 2

gitver=`git rev-parse --verify HEAD 2>/dev/null` || gitver="unknown"
macro=`echo "$prefix"_GIT_VERSION | tr '[:lower:]' '[:upper:]'`

cd "$workdir" || exit 2
printf "#define $macro\t\"$gitver\"\n" > "$output"

# all done
exit 0