]> git.decadent.org.uk Git - dak.git/blobdiff - scripts/debian/byhand-di
Fix proposed-updates handling in byhand-di and byhand-win32-loader
[dak.git] / scripts / debian / byhand-di
index ab01536d7adf4f165c2c1fabd7d30b297ec1e9db..4c72a01a413b1438d72737c07e1916cca08b061f 100755 (executable)
@@ -1,7 +1,11 @@
-#!/bin/sh -ue
+#!/bin/bash
 
-if [ $# -lt 4 ]; then
-       echo "Usage: $0 filename version arch changes_file"
+set -u
+set -e
+set -o pipefail
+
+if [ $# -lt 5 ]; then
+       echo "Usage: $0 filename version arch changes_file suite"
        exit 1
 fi
 
@@ -9,6 +13,7 @@ TARBALL="$1"   # Tarball to read, compressed with gzip
 VERSION="$2"
 ARCH="$3"
 CHANGES="$4"   # Changes file for the upload
+SUITE="$5"
 
 error() {
        echo "$*"
@@ -16,19 +21,14 @@ error() {
 }
 
 # Check validity of version number
-# Expected are: YYYYMMDD, YYYYMMDD.x, YYYYMMDD<suite>x and the +b[0-9] on the end
-if ! echo "$VERSION" | grep -Eq "^[0-9]{8}(|(\.|[a-z]+)[0-9]+)(\+b[0-9])?$"; then
+# Expected are: YYYYMMDD, YYYYMMDD.x, YYYYMMDD<suite>x, YYYYMMDD+<suite>x,
+# YYYYMMDD+debXuZ and the +b[0-9] on the end
+if ! echo "$VERSION" | grep -Eq "^[0-9]{8}((\.|\+?[a-z]+|\+deb[0-9]+u|\+kbsd[0-9]+u)[0-9]+)?(\+b[0-9])?$"; then
        error "Invalid version: '$VERSION'"
 fi
 
-# Get the target suite from the Changes file
-# NOTE: it may be better to pass this to the script as a parameter!
-SUITE="$(grep "^Distribution:" "$CHANGES" | awk '{print $2}')"
 case $SUITE in
-    "")
-       error "Error: unable to determine suite from Changes file"
-       ;;
-    unstable|sid)
+    unstable|sid|*proposed-updates)
        : # nothing to do
        ;;
     *)
@@ -51,7 +51,8 @@ if [ -d "$TARGET/$VERSION" ]; then
 fi
 
 # We know the VERSION is sane by here, we just need to make sure we escape the + in +b1 (if any)
-VERSIONREGEXP="$(echo $VERSION | sed 's@+@\\\+@')"
+# It needs 'g' as well as we may have +$DIST+b[0-9] or +debXuZ+bY
+VERSIONREGEXP="$(echo $VERSION | sed 's@+@\\\+@g')"
 
 # We know all data to be in ./installer-<arch>/<version>; see if there's
 # anything else in the tarball except that and the 'current' symlink