bin/mdw-build: Cross-check Git and Debian version numbers.
authorMark Wooding <mdw@distorted.org.uk>
Sat, 26 Dec 2009 20:09:36 +0000 (20:09 +0000)
committerMark Wooding <mdw@distorted.org.uk>
Sat, 26 Dec 2009 20:20:08 +0000 (20:20 +0000)
I don't think I've come a cropper over this before, but it seems like a
sensible thing to take care of.

bin/mdw-build

index 7003964..65ea3b0 100755 (executable)
@@ -99,6 +99,13 @@ fail () {
   exit 1
 }
 
+warn () {
+  case $build in
+    release) fail "$*" ;;
+    *) notify 5 "??? $*" ;;
+  esac
+}
+
 info () {
   notify 6 "--- $*"
 }
@@ -152,18 +159,46 @@ case $verbose in
     ;;
 esac
 
-## Maybe check out a copy of the source.
+## Do we have a Git repository?
 case "$checkout,$setup,$(yesno [ -d $srcpath/.git ])" in
   yes,no,*)
     fail "Inconsistent options: can't check out without setup."
     ;;
   yes,yes,no)
     info "No Git repository found."
+    checkout=no gitver=none
     ;;
   yes,yes,yes)
     cd $srcpath
     [ "$(git ls-files -m)" = "" ] ||
-      fail "working tree has uncommitted changes"
+      warn "working tree has uncommitted changes"
+    gitver=$(git describe)
+esac
+
+## Is there Debian build equipment?
+case "$debian,$(yesno [ -d $srcpath/debian ])" in
+  yes,no)
+    info "No debian directory found."
+    debian=no debver=none
+    ;;
+  yes,yes)
+    debver=$(dpkg-parsechangelog | sed -n 's/^Version: //p')
+    ;;
+esac
+
+## Check the version number.
+case "$gitver,$debver" in
+  none,* | *,none)
+    ;;
+  *)
+    [ "$gitver" = "$debver" ] ||
+      warn "Git version $gitver doesn't match Debian version $debver"
+    ;;
+esac
+
+## Maybe check ot a copy of the source.
+case "$checkout" in
+  yes)
     cd $releasepath
     run git clone -sn $srcpath/.git _source
     assign srcpath $releasepath/_source
@@ -218,12 +253,8 @@ fi
 run mv $buildpath/$distdir.tar.gz .
 
 ## Maybe build the Debian packages.
-case "$debian,$(yesno [ -d $srcpath/debian ])" in
-  yes,no)
-    info "No debian directory found."
-    debian=no
-    ;;
-  yes,yes)
+case "$debian" in
+  yes)
     run tar xvfz $distdir.tar.gz
     cd $distdir
     run dpkg-buildpackage -k$(mdw-conf releasekey)