chiark / gitweb /
.git-revid from my trains.git
[topbloke-formulae.git] / .git-revid
1 #!/bin/bash
2 set -e
3 set -o pipefail
4
5 kind="$1"
6
7 desc=`git-describe --always HEAD`
8 log=`git-log -1 --pretty='format:%h %ci %s' HEAD`
9 set +e
10 git-diff --quiet HEAD
11 diffrc=$?
12 set -e
13 case $diffrc in
14 0)      ;;
15 1)      diffplus=+ ;;
16 *)      exit $diffrc ;;
17 esac
18
19 case "$1" in
20 '')     maxlen=.71
21         ;;
22 C)      echo '#include "../.git-revid-autoversion.h"'
23         printf 'const char autoversion[]= \"'
24         log="${log//\\/\\\\}"
25         log="${log//\"/\\\"}"
26         maxlen=''
27         ;;
28 *)      echo >&2 'bad usage for .git-revid'
29         exit 1
30         ;;
31 esac
32
33 printf "%${maxlen}s" "$desc$diffplus $log"
34
35 case "$kind" in
36 '')     printf '\n' ;;
37 C)      echo '";' ;;
38 *)      ;;
39 esac