X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=build-aux%2Fgit-version-gen;h=795a98b32364ca1fbf8a8f131ee6c12daa46fcf3;hb=6147723cd9000c4e840205fec3e64b0a5a5c1d04;hp=e754c77d6a383a03a16e42d6c83f4b7af4ced227;hpb=197b47e41bbf202b2f1abf45a43515200470bf47;p=gnulib.git diff --git a/build-aux/git-version-gen b/build-aux/git-version-gen index e754c77d6..795a98b32 100755 --- a/build-aux/git-version-gen +++ b/build-aux/git-version-gen @@ -1,6 +1,6 @@ #!/bin/sh # Print a version string. -scriptversion=2010-02-24.17; # UTC +scriptversion=2010-10-13.20; # UTC # Copyright (C) 2007-2010 Free Software Foundation, Inc. # @@ -67,14 +67,20 @@ scriptversion=2010-02-24.17; # UTC # echo $(VERSION) > $(distdir)/.tarball-version case $# in - 1) ;; - *) echo 1>&2 "Usage: $0 \$srcdir/.tarball-version"; exit 1;; + 1|2) ;; + *) echo 1>&2 "Usage: $0 \$srcdir/.tarball-version" \ + '[TAG-NORMALIZATION-SED-SCRIPT]' + exit 1;; esac tarball_version_file=$1 +tag_sed_script="${2:-s/x/x/}" nl=' ' +# Avoid meddling by environment variable of the same name. +v= + # First see if there is a tarball-only version file. # then try "git describe", then default. if test -f $tarball_version_file @@ -92,9 +98,13 @@ fi if test -n "$v" then : # use $v -elif test -d .git \ +# Otherwise, if there is at least one git commit involving the working +# directory, and "git describe" output looks sensible, use that to +# derive a version string. +elif test "`git log -1 --pretty=format:x . 2>&1`" = x \ && v=`git describe --abbrev=4 --match='v*' HEAD 2>/dev/null \ || git describe --abbrev=4 HEAD 2>/dev/null` \ + && v=`printf '%s\n' "$v" | sed "$tag_sed_script"` \ && case $v in v[0-9]*) ;; *) (exit 1) ;; @@ -140,7 +150,7 @@ case "$dirty" in esac # Omit the trailing newline, so that m4_esyscmd can use the result directly. -echo "$v" | tr -d '\012' +echo "$v" | tr -d "$nl" # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp)