summaryrefslogtreecommitdiffstats
path: root/ctdb/packaging/mkversion.sh
diff options
context:
space:
mode:
Diffstat (limited to 'ctdb/packaging/mkversion.sh')
-rwxr-xr-xctdb/packaging/mkversion.sh66
1 files changed, 66 insertions, 0 deletions
diff --git a/ctdb/packaging/mkversion.sh b/ctdb/packaging/mkversion.sh
new file mode 100755
index 00000000000..7a550a54f42
--- /dev/null
+++ b/ctdb/packaging/mkversion.sh
@@ -0,0 +1,66 @@
+#!/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
+#
+
+OUTPUT=$1
+
+if [ -z "$OUTPUT" ]; then
+ OUTPUT="include/ctdb_version.h"
+fi
+
+# 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/'`
+ RELEASE=1
+ ;;
+ *)
+ # An actual release version
+ VERSION=$TAG
+ RELEASE=1
+ ;;
+ esac
+ ;;
+ *)
+ echo Invalid tag "$TAG" >&2
+ ;;
+esac
+
+cat > "$OUTPUT" <<EOF
+/* This file is auto-genrated by packaging/mkversion.sh */
+
+#define CTDB_VERSION_STRING "$VERSION"
+
+EOF
+
+echo "$VERSION $RELEASE"