#!/bin/bash set -e set -o pipefail kind="$1" desc=`git-describe --always HEAD` log=`git-log -1 --pretty='format:%h %ci %s' HEAD` set +e git-diff --quiet HEAD diffrc=$? set -e case $diffrc in 0) ;; 1) diffplus=+ ;; *) exit $diffrc ;; esac case "$1" in '') maxlen=.71 ;; C) echo '#include "../.git-revid-autoversion.h"' printf 'const char autoversion[]= \"' log="${log//\\/\\\\}" log="${log//\"/\\\"}" maxlen='' ;; *) echo >&2 'bad usage for .git-revid' exit 1 ;; esac printf "%${maxlen}s" "$desc$diffplus $log" case "$kind" in '') printf '\n' ;; C) echo '";' ;; *) ;; esac