packaging: Factor out the code to genreate VERSION string
authorAmitay Isaacs <amitay@gmail.com>
Mon, 22 Oct 2012 04:08:41 +0000 (15:08 +1100)
committerAmitay Isaacs <amitay@gmail.com>
Mon, 22 Oct 2012 07:15:17 +0000 (18:15 +1100)
Signed-off-by: Amitay Isaacs <amitay@gmail.com>
packaging/mkversion.sh [new file with mode: 0755]

diff --git a/packaging/mkversion.sh b/packaging/mkversion.sh
new file mode 100755 (executable)
index 0000000..7d12f68
--- /dev/null
@@ -0,0 +1,50 @@
+#!/bin/sh
+#
+# mkversion.sh - extract version string from git branch
+#
+# Copyright (C) Amitay Isaacs 2012
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by the Free
+# Software Foundation; either version 3 of the License, or (at your option)
+# any later version.
+#
+# This program is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
+# more details.
+#
+# You should have received a copy of the GNU General Public License along with
+# this program; if not, see <http://www.gnu.org/licenses/>.
+#
+
+#
+# Common code to generate CTDB version string
+#
+
+# We use tags and determine the version, as follows:
+# ctdb-0.9.1  (First release of 0.9).
+# ctdb-0.9.23 (23rd minor release of the 112 version)
+#
+# If we're not directly on a tag, this is a devel release; we append
+# .0.<patchnum>.<checksum>.devel to the release.
+TAG=`git describe`
+case "$TAG" in
+    ctdb-*)
+       TAG=${TAG##ctdb-}
+       case "$TAG" in
+           *-*-g*) # 0.9-168-ge6cf0e8
+               # Not exactly on tag: devel version.
+               VERSION=`echo "$TAG" | sed 's/\([^-]\+\)-\([0-9]\+\)-\(g[0-9a-f]\+\)/\1.0.\2.\3.devel/'`
+               ;;
+           *)
+               # An actual release version
+               VERSION=$TAG
+               ;;
+       esac
+       ;;
+    *)
+       echo Invalid tag "$TAG" >&2
+       ;;
+esac
+echo $VERSION