X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=scripts%2Fdebian%2Fbyhand-di;h=99cb313152555496227c56f751cad15f8e66d9a8;hb=b4787f88ef10799017b6fbebd94119b127b5d683;hp=70faceb63cfec40a53a0089508729d258cc1be4a;hpb=26127c32273ec9aa520aff834993ebf5504dfdc1;p=dak.git diff --git a/scripts/debian/byhand-di b/scripts/debian/byhand-di index 70faceb6..99cb3131 100755 --- a/scripts/debian/byhand-di +++ b/scripts/debian/byhand-di @@ -1,4 +1,7 @@ -#!/bin/sh -ue +#!/bin/sh + +set -u +set -e if [ $# -lt 4 ]; then echo "Usage: $0 filename version arch changes_file" @@ -16,8 +19,8 @@ error() { } # Check validity of version number -# Expected are: YYYYMMDD, YYYYMMDD.x, YYYYMMDDx -if ! echo "$VERSION" | grep -Eq "^[0-9]{8}(|(\.|[a-z]+)[0-9]+)$"; then +# Expected are: YYYYMMDD, YYYYMMDD.x, YYYYMMDDx, YYYYMMDD+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 error "Invalid version: '$VERSION'" fi @@ -50,10 +53,13 @@ if [ -d "$TARGET/$VERSION" ]; then error "Directory already exists: $TARGET/$VERSION" 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@+@\\\+@')" + # We know all data to be in ./installer-/; see if there's # anything else in the tarball except that and the 'current' symlink if tar tzf "$TARBALL" | \ - grep -Eqv "^\./(installer-$ARCH/($VERSION/.*|current|)|)$"; then + grep -Eqv "^\./(installer-$ARCH/($VERSIONREGEXP/.*|current|)|)$"; then error "Tarball contains unexpected contents" fi