#!/bin/bash set -e set -o pipefail kind="$1" desc=`git describe --always HEAD` log=`git log -1 --pretty='format:%h' HEAD` date=`date --iso-8601=minutes` 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" "$log $desc$diffplus $date" case "$kind" in '') printf '\n' ;; C) echo '";' ;; *) ;; esac