Check module version consistency.
authorMarko Kreen <markokr@gmail.com>
Fri, 21 Dec 2012 12:47:09 +0000 (14:47 +0200)
committerMarko Kreen <markokr@gmail.com>
Fri, 21 Dec 2012 13:37:03 +0000 (15:37 +0200)
There are several places where verisons need to be
mentioned, check all of them.

Also let genpg.sh refuse to continue if there is version
mismatch.

debian/genpg.sh
misc/bumpver.py [deleted file]
misc/bumpver.sh [deleted file]
misc/checkver.sh [new file with mode: 0755]

index 48c76571ee7fdce713bc7bc4ced5e42201b0a7e7..55e7e79dbdd56c048f5c52819434117e7b885482 100755 (executable)
@@ -2,7 +2,17 @@
 
 # generate per-version files
 
-test -f debian/genpg.sh && cd debian
+test -f debian/genpg.sh || {
+  echo "$0: Run it from top-level directory"
+  exit 1
+}
+
+./misc/checkver.sh || {
+  echo "$0: versions out of sync, stop"
+  exit 1
+}
+
+cd debian
 
 for v in 8.3 8.4 9.0 9.1 9.2; do
 
@@ -60,3 +70,5 @@ if test "$v" = "9.1" -o "$v" = "9.2"; then
 fi
 
 done
+
+exit 0
diff --git a/misc/bumpver.py b/misc/bumpver.py
deleted file mode 100755 (executable)
index d99553e..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-#! /usr/bin/env python
-
-import sys, re
-
-def inc(m):
-    v = int(m.group(1))
-    return str(v + 1) + "'"
-
-func = open(sys.argv[1], 'r').read()
-
-rc = re.compile(r"([0-9]+)'")
-nfunc = rc.sub(inc, func)
-
-rc2 = re.compile(r"'([0-9.]+)'")
-nver = rc2.search(nfunc).group(1)
-
-#print func
-#print nfunc
-print nver
-
-open(sys.argv[1], 'w').write(nfunc)
-
diff --git a/misc/bumpver.sh b/misc/bumpver.sh
deleted file mode 100755 (executable)
index bf2b48f..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-#! /bin/sh
-
-for s in pgq pgq_node pgq_coop londiste pgq_ext; do
-  sver=$(git log --raw -n 1 sql/$s/functions | head -1)
-  fn="sql/$s/functions/$s.version.sql"
-  fver=$(git log --raw -n 1 "$fn" | head -1)
-  test "$sver" = "$fver" && continue
-
-  echo "$s needs new version"
-  #nver=`./misc/bumpver.py "$fn"`
-  #git commit -m "$s.version(): $nver" "$fn"
-done
-
-grep 'return ' sql/*/functions/*.version.sql
diff --git a/misc/checkver.sh b/misc/checkver.sh
new file mode 100755 (executable)
index 0000000..3868ac9
--- /dev/null
@@ -0,0 +1,27 @@
+#! /bin/sh
+
+err=0
+
+for s in pgq pgq_node pgq_coop londiste pgq_ext; do
+  code_hash=$(git log --raw -n 1 sql/$s/functions | head -1)
+  fn="sql/$s/functions/$s.version.sql"
+  ver_hash=$(git log --raw -n 1 "$fn" | head -1)
+  test "${code_hash}" = "${ver_hash}" || echo "$s has code changes, needs new version"
+
+  ver_func=$(sed -n "s/.*return *'\(.*\)';/\1/;T;p" $fn)
+  ver_control=$(sed -n "s/default_version = '\(.*\)'/\1/;T;p" sql/$s/$s.control)
+  ver_make=$(sed -n "s/EXT_VERSION = \(.*\)/\1/;T;p" sql/$s/Makefile)
+
+  if test "${ver_func}|${ver_control}" = "${ver_make}|${ver_make}"; then
+    echo "$s: $ver_control"
+  else
+    echo "$s: version mismatch"
+    echo "   Makefile:  $ver_make"
+    echo "   version(): $ver_func"
+    echo "   control:   $ver_control"
+    err=1
+  fi
+done
+
+exit $err
+