From cae1c3528a5be9cd6548fa14db63c501edfaaf25 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Sun, 9 Jan 2011 14:01:47 +0000 Subject: [PATCH] git-revid: new C autoversion feature --- .git-revid | 26 +++++++++++++++++++++++++- .git-revid-autoversion.h | 5 +++++ 2 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 .git-revid-autoversion.h diff --git a/.git-revid b/.git-revid index f4d7770..74037ae 100755 --- a/.git-revid +++ b/.git-revid @@ -1,6 +1,9 @@ #!/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 @@ -12,4 +15,25 @@ case $diffrc in 1) diffplus=+ ;; *) exit $diffrc ;; esac -printf '%.71s\n' "$desc$diffplus $log" + +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 diff --git a/.git-revid-autoversion.h b/.git-revid-autoversion.h new file mode 100644 index 0000000..8502ce4 --- /dev/null +++ b/.git-revid-autoversion.h @@ -0,0 +1,5 @@ +/* goes with the automatically-generated output from .git-revid */ +#ifndef AUTOVERSION_H +#define AUTOVERSION_H +extern const char autoversion[]; +#endif /*AUTOVERSION_H*/ -- 2.30.2