Makefile.am: Ship `debian/compat'.
[cfd] / auto-version.in
CommitLineData
d9b245f4
MW
1#! /bin/sh
2### -*-sh-*-
3###
4### Make autoconf-like substitutions in files
5###
6### (c) 2008 Mark Wooding
7###
8
9###----- Licensing notice ---------------------------------------------------
10###
11### This file is part of the Common Files Distribution (`common').
12###
13### `Common' is free software; you can redistribute it and/or modify
14### it under the terms of the GNU General Public License as published by
15### the Free Software Foundation; either version 2 of the License, or
16### (at your option) any later version.
17###
18### `Common' is distributed in the hope that it will be useful,
19### but WITHOUT ANY WARRANTY; without even the implied warranty of
20### MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21### GNU General Public License for more details.
22###
23### You should have received a copy of the GNU General Public License
24### along with `common'; if not, write to the Free Software Foundation,
25### Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
26
27set -e
28VERSION="@VERSION@"
29
30###--------------------------------------------------------------------------
31### Parse command line arguments.
32
33while [ $# -gt 0 ]; do
34 case $1 in
35 -h | --h | --he | --hel | --help)
36 cat <<EOF
37Usage: auto-verison
38
39Writes on standard output the program's version number.
40EOF
41 exit 0
42 ;;
43 -v | --v | --ve | --ver | --vers | --versi | --versio | --version)
44 echo "auto-version: Common Files Distribution version $VERSION"
45 exit 0
46 ;;
47 --)
48 shift
49 break
50 ;;
51 -)
52 break
53 ;;
54 -*)
55 echo "auto-version: unknown option \`$1'" >&2
56 exit 1
57 ;;
58 *)
59 break
60 ;;
61 esac
62 shift
63done
64
65if [ $# -ne 0 ]; then
66 echo >&2 "Usage: auto-version"
67 exit 1
68fi
69
70###--------------------------------------------------------------------------
71### Main program.
72
73## If this is a Git checkout then Git should be able to identify the version.
74if [ -d .git ] && version=$(git describe --abbrev=4 2>/dev/null); then
75
76 ## If the working tree is dirty, indicate with a `+'.
77 case "$(git diff-index --name-only HEAD)" in
78 "") ;;
79 *) version="$version+" ;;
80 esac
81 echo "$version"
82 exit 0
83fi
84
85## If this was unpacked from a source distribution, the RELEASE file sould
86## say what the version was.
87if [ -f RELEASE ]; then
88 cat RELEASE
89 exit 0
90fi
91
92## If we're Debianized, then the Debian changelog ought to know.
93if [ -f debian/changelog ]; then
94 sed -n '/^.*(\(.*\)).*$/ { s::\1:p; q; }' debian/changelog
95 exit 0
96fi
97
98## Otherwise we're screwed.
99echo UNKNOWN
100exit 0
101
102###----- That's all, folks --------------------------------------------------