Mercurial > hg > octave-nkf > gnulib-hg
annotate build-aux/git-version-gen @ 9175:c7f825e034ad
* build-aux/git-version-gen: New file, from coreutils. For details, see
http://git.sv.gnu.org/gitweb/?p=coreutils.git;a=commitdiff;h=bfe49f506
author | Jim Meyering <jim@meyering.net> |
---|---|
date | Sun, 02 Sep 2007 22:42:45 +0000 |
parents | |
children | 595a77da32de |
rev | line source |
---|---|
9175
c7f825e034ad
* build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
1 #!/bin/sh |
c7f825e034ad
* build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
2 # Print a version string. |
c7f825e034ad
* build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
3 # This script is derived from GIT-VERSION-GEN from GIT: http://git.or.cz/. |
c7f825e034ad
* build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
4 scriptversion=2007-06-30.12 |
c7f825e034ad
* build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
5 |
c7f825e034ad
* build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
6 # Copyright (C) 2007 Free Software Foundation |
c7f825e034ad
* build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
7 # |
c7f825e034ad
* build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
8 # This program is free software; you can redistribute it and/or modify |
c7f825e034ad
* build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
9 # it under the terms of the GNU General Public License as published by |
c7f825e034ad
* build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
10 # the Free Software Foundation; either version 3, or (at your option) |
c7f825e034ad
* build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
11 # any later version. |
c7f825e034ad
* build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
12 # |
c7f825e034ad
* build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
13 # This program is distributed in the hope that it will be useful, |
c7f825e034ad
* build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
14 # but WITHOUT ANY WARRANTY; without even the implied warranty of |
c7f825e034ad
* build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
15 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
c7f825e034ad
* build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
16 # GNU General Public License for more details. |
c7f825e034ad
* build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
17 # |
c7f825e034ad
* build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
18 # You should have received a copy of the GNU General Public License |
c7f825e034ad
* build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
19 # along with this program; if not, write to the Free Software |
c7f825e034ad
* build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
20 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA |
c7f825e034ad
* build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
21 # 02110-1301, USA. |
c7f825e034ad
* build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
22 |
c7f825e034ad
* build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
23 case $# in |
c7f825e034ad
* build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
24 2) ;; |
c7f825e034ad
* build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
25 *) echo 1>&2 "Usage: $0 \$VERSION \$srcdir/.version"; exit 1;; |
c7f825e034ad
* build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
26 esac |
c7f825e034ad
* build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
27 |
c7f825e034ad
* build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
28 default_version=$1 |
c7f825e034ad
* build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
29 tarball_version_file=$2 |
c7f825e034ad
* build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
30 nl=' |
c7f825e034ad
* build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
31 ' |
c7f825e034ad
* build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
32 |
c7f825e034ad
* build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
33 # First see if there is a tarball-only version file. |
c7f825e034ad
* build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
34 # then try git-describe, then default. |
c7f825e034ad
* build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
35 if test -f $tarball_version_file |
c7f825e034ad
* build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
36 then |
c7f825e034ad
* build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
37 v=`cat $tarball_version_file` || exit 1 |
c7f825e034ad
* build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
38 case $v in |
c7f825e034ad
* build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
39 *$nl*) v= ;; # reject multi-line output |
c7f825e034ad
* build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
40 [0-9]*) ;; |
c7f825e034ad
* build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
41 *) v= ;; |
c7f825e034ad
* build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
42 esac |
c7f825e034ad
* build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
43 test -z "$v" \ |
c7f825e034ad
* build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
44 && echo "$0: WARNING: $tarball_version_file seems to be damaged" 1>&2 |
c7f825e034ad
* build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
45 fi |
c7f825e034ad
* build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
46 |
c7f825e034ad
* build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
47 if test -n "$v" |
c7f825e034ad
* build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
48 then |
c7f825e034ad
* build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
49 : # use $v |
c7f825e034ad
* build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
50 elif test -d .git \ |
c7f825e034ad
* build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
51 && v=`git describe --abbrev=4 HEAD 2>/dev/null` \ |
c7f825e034ad
* build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
52 && case $v in |
c7f825e034ad
* build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
53 v[0-9]*) ;; |
c7f825e034ad
* build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
54 *) (exit 1) ;; |
c7f825e034ad
* build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
55 esac |
c7f825e034ad
* build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
56 then |
c7f825e034ad
* build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
57 # Remove the "g" in git-describe's output string; change each - to a '.' |
c7f825e034ad
* build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
58 v=`echo "$v" | sed 's/\(.*\)-g/\1-/;s/-/./g'`; |
c7f825e034ad
* build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
59 else |
c7f825e034ad
* build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
60 v=$default_version |
c7f825e034ad
* build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
61 fi |
c7f825e034ad
* build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
62 |
c7f825e034ad
* build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
63 v=`echo "$v" |sed 's/^v//'` |
c7f825e034ad
* build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
64 |
c7f825e034ad
* build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
65 dirty=`sh -c 'git diff-index --name-only HEAD' 2>/dev/null` || dirty= |
c7f825e034ad
* build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
66 case "$dirty" in |
c7f825e034ad
* build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
67 '') ;; |
c7f825e034ad
* build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
68 *) # Append the suffix only if there isn't one already. |
c7f825e034ad
* build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
69 case $v in |
c7f825e034ad
* build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
70 *-dirty) ;; |
c7f825e034ad
* build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
71 *) v="$v-dirty" ;; |
c7f825e034ad
* build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
72 esac ;; |
c7f825e034ad
* build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
73 esac |
c7f825e034ad
* build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
74 |
c7f825e034ad
* build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
75 # Omit the trailing newline, so that m4_esyscmd can use the result directly. |
c7f825e034ad
* build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
76 echo "$v" | tr -d '\012' |
c7f825e034ad
* build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
77 |
c7f825e034ad
* build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
78 # Local variables: |
c7f825e034ad
* build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
79 # eval: (add-hook 'write-file-hooks 'time-stamp) |
c7f825e034ad
* build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
80 # time-stamp-start: "scriptversion=" |
c7f825e034ad
* build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
81 # time-stamp-format: "%:y-%02m-%02d.%02H" |
c7f825e034ad
* build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
82 # time-stamp-end: "$" |
c7f825e034ad
* build-aux/git-version-gen: New file, from coreutils. For details, see
Jim Meyering <jim@meyering.net>
parents:
diff
changeset
|
83 # End: |