]> git.decadent.org.uk Git - dak.git/commitdiff
Merge remote-tracking branch 'ansgar/pu/multiline-external-overrides' into merge
authorJoerg Jaspert <joerg@debian.org>
Sat, 18 Feb 2012 13:40:16 +0000 (14:40 +0100)
committerJoerg Jaspert <joerg@debian.org>
Sat, 18 Feb 2012 13:40:16 +0000 (14:40 +0100)
* ansgar/pu/multiline-external-overrides:
  byhand-*: set -o pipefail
  byhand-tag: abort on invalid data
  byhand-tag: Allow uppercase letters in tags.

Signed-off-by: Joerg Jaspert <joerg@debian.org>
scripts/debian/byhand-di
scripts/debian/byhand-tag
scripts/debian/byhand-task

index f8e5f6ba4d5796e975c092db795fa3aa6a38bdbb..af03af4c8f3d3bfb12fbeab67139ae3cedc90791 100755 (executable)
@@ -1,7 +1,8 @@
-#!/bin/sh
+#!/bin/bash
 
 set -u
 set -e
+set -o pipefail
 
 if [ $# -lt 4 ]; then
        echo "Usage: $0 filename version arch changes_file"
index d0674c84fec97ba70490a1d209fc432fa132077e..f9840cfd89237aba5b0c25a2a783ea55fecae6cf 100755 (executable)
@@ -1,7 +1,8 @@
-#!/bin/sh
+#!/bin/bash
 
 set -u
 set -e
+set -o pipefail
 
 export SCRIPTVARS=/srv/ftp-master.debian.org/dak/config/debian/vars
 . $SCRIPTVARS
@@ -10,7 +11,7 @@ export SCRIPTVARS=/srv/ftp-master.debian.org/dak/config/debian/vars
 INPUT="${1:?"Usage: $0 filename"}"
 
 # Regular expression used to validate tag lines
-CHECKRE='^([a-z0-9A-Z.+-]+[[:space:]]+Tag)?[[:space:]]+[a-z0-9:. ,{}+-]+$'
+CHECKRE='^([a-z0-9A-Z.+-]+[[:space:]]+Tag)?[[:space:]]+[A-Za-z0-9:. ,{}+-]+$'
 
 # This must end with /
 TARGET=/srv/ftp-master.debian.org/scripts/external-overrides/
@@ -33,9 +34,18 @@ cleanup() {
 trap cleanup EXIT
 
 # Extract the data into the temporary files
-tar -O -zxf "$INPUT" "$DIR"/tag | grep -E "$CHECKRE" > "$OUTMAIN"
-tar -O -zxf "$INPUT" "$DIR"/tag.contrib | grep -E "$CHECKRE" > "$OUTCONTRIB"
-tar -O -zxf "$INPUT" "$DIR"/tag.non-free | grep -E "$CHECKRE" > "$OUTNONFREE"
+tar -O -zxf "$INPUT" "$DIR"/tag > "$OUTMAIN"
+tar -O -zxf "$INPUT" "$DIR"/tag.contrib > "$OUTCONTRIB"
+tar -O -zxf "$INPUT" "$DIR"/tag.non-free > "$OUTNONFREE"
+
+# check temporary files for invalid contents
+status=0
+grep -vq -E "$CHECKRE" "$OUTMAIN" "$OUTCONTRIB" "$OUTNONFREE" || status=$?
+# checking just $? != 0 is not enough. grep can return 2 on other errors.
+if [ $status != 1 ]; then
+        echo "Aborting automatic import (invalid data found)." >&2
+        exit 1
+fi
 
 # Move the data to the final location
 mv "$OUTMAIN"           "$TARGET"tag
index cd40167181dbe27fda86529a463172a4a8587985..1fcccc088b50cfea7e2b64c44408b42f4333ae29 100755 (executable)
@@ -1,7 +1,8 @@
-#!/bin/sh
+#!/bin/bash
 
 set -u
 set -e
+set -o pipefail
 
 if [ $# -lt 4 ]; then
         echo "Usage: $0 filename version arch changes_file"