summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorShawn O. Pearce <sop@google.com>2009-12-12 20:13:47 -0800
committerShawn O. Pearce <sop@google.com>2009-12-12 20:13:47 -0800
commit4fdf3e4af2a506461f24ed1f034c6ac034aed9e5 (patch)
tree0e5be9699ac5333f6e1c1073802cf6c802c1f15b
parenta2a69c8e58e8375ce1596c68fe642d9c6c7b8726 (diff)
tools/version.sh: Quick hack to edit our Maven version
Change-Id: If6b325a454c4578bbd21a6bf2c786d4cc01a47de Signed-off-by: Shawn O. Pearce <sop@google.com>
-rwxr-xr-xtools/version.sh59
1 files changed, 59 insertions, 0 deletions
diff --git a/tools/version.sh b/tools/version.sh
new file mode 100755
index 0000000000..dd0db870e5
--- /dev/null
+++ b/tools/version.sh
@@ -0,0 +1,59 @@
+#!/bin/sh
+
+# Update all pom.xml with new build number
+#
+# TODO(sop) This should be converted to some sort of
+# Java based Maven plugin so its fully portable.
+#
+
+case "$1" in
+--snapshot=*)
+ V=$(echo "$1" | perl -pe 's/^--snapshot=//')
+ if [ -z "$V" ]
+ then
+ echo >&2 "usage: $0 --snapshot=0.n.0"
+ exit 1
+ fi
+ case "$V" in
+ *-SNAPSHOT) : ;;
+ *) V=$V-SNAPSHOT ;;
+ esac
+ ;;
+
+--release)
+ V=$(git describe HEAD) || exit
+ ;;
+
+*)
+ echo >&2 "usage: $0 {--snapshot=0.n.0 | --release}"
+ exit 1
+esac
+
+case "$V" in
+v*) V=$(echo "$V" | perl -pe s/^v//) ;;
+esac
+
+case "$V" in
+*-SNAPSHOT)
+ POM_V=$V
+ ;;
+*-[1-9]*-g[0-9a-f]*)
+ POM_V=$(echo "$V" | perl -pe 's/-(\d+-g.*)$/.$1/')
+ ;;
+*)
+ POM_V=$V
+ ;;
+esac
+
+perl -pi -e '
+ if ($ARGV ne $old_argv) {
+ $seen_version = 0;
+ $old_argv = $ARGV;
+ }
+ if (!$seen_version) {
+ $seen_version = 1 if
+ s{(<version>).*(</version>)}{${1}'"$POM_V"'${2}};
+ }
+ ' $(git ls-files | grep pom.xml)
+
+git diff