chiark / gitweb /
Shell bug: avoid local=$(....) as it defeats set -e
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Fri, 6 Jan 2017 19:49:23 +0000 (19:49 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Fri, 6 Jan 2017 19:49:23 +0000 (19:49 +0000)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
infra/dgit-mirror-rsync
tests/lib
tests/lib-build-modes
tests/lib-core
tests/lib-reprepro
tests/tartree-edit
tests/tests/drs-push-masterupdate
tests/tests/inarchivecopy

index 0d29ffb..9346489 100755 (executable)
@@ -91,7 +91,7 @@ reinvoke () {
 
 check-package-mirrorable () {
        local repo=$repos/$package.git
-       local mode=$(stat -c%a "$repo")
+       local mode; mode=$(stat -c%a "$repo")
        case $mode in
        *5)     return  0       ;;
        *0)     return  1       ;;
index f2414ae..50d614e 100644 (file)
--- a/tests/lib
+++ b/tests/lib
@@ -114,7 +114,7 @@ t-grep-mpat () {
 t-expect-push-fail () {
        local mpat="$1"; shift
 
-       local triedpush=`git rev-parse HEAD`
+       local triedpush; triedpush=`git rev-parse HEAD`
 
        t-reporefs pre-push
        t-expect-fail "$mpat"  "$@"
@@ -191,9 +191,9 @@ t-git-merge-base () {
 t-has-ancestor () {
        # t-has-ancestor ANCESTOR
        # (CHILD is implicit, HEAD)
-       local now=`git rev-parse HEAD`
-       local ancestor=`git rev-parse $1^{}`
-       local mbase=`t-git-merge-base $ancestor $now`
+       local now;      now=`git rev-parse HEAD`
+       local ancestor; ancestor=`git rev-parse $1^{}`
+       local mbase;    mbase=`t-git-merge-base $ancestor $now`
        if [ x$mbase != x$ancestor ]; then
                fail "not ff $ancestor..$now, $mbase != $ancestor"
        fi
@@ -203,7 +203,8 @@ t-has-parent-or-is () {
        # t-has-parent-or-is CHILD PARENT
        local child=$1
        local parent=$2
-       local parents=$(git show --pretty=format:' %P %H ' "$child")
+       local parents
+       parents=$(git show --pretty=format:' %P %H ' "$child")
        parent=$(git rev-parse "$parent~0")
        case "$parents" in
        *" $parent "*)  ;;
@@ -310,7 +311,7 @@ t-archive-query-aq () {
        local p=$2
        local v=$3
        local dscf=$4
-       local sha=`sha256sum <$tmp/mirror/pool/$dscf`
+       local sha; sha=`sha256sum <$tmp/mirror/pool/$dscf`
        echo "${v} ${sha%  -} $dscf" >>$tmp/aq/package.$suite.${p}
        t-aq-archive-updated $suite $p
 }
@@ -528,18 +529,18 @@ t-git-get-ref () {
 
 t-ref-same-exact () {
        local name="$1"
-       local val=`t-git-get-ref-exact $name`
+       local val; val=`t-git-get-ref-exact $name`
        t-ref-same-val "$name" $val
 }
 
 t-ref-same () {
        local name="$1"
-       local val=`t-git-get-ref $name`
+       local val; val=`t-git-get-ref $name`
        t-ref-same-val "$name" $val
 }
 
 t-ref-head () {
-       local val=`git rev-parse HEAD`
+       local val; val=`git rev-parse HEAD`
        t-ref-same-val HEAD $val
 }
 
@@ -589,11 +590,11 @@ t-format-ref () {
 t-sametree-parent () {
        local ref=$1
        local parent
-       local ctree=$(t-format-ref '%T' "$ref")
+       local ctree; ctree=$(t-format-ref '%T' "$ref")
        while :; do
                local psame=''
                for parent in $(t-format-ref '%P' "$ref"); do
-                       local ptree=$(t-format-ref '%T' "$parent")
+                       local ptree; ptree=$(t-format-ref '%T' "$parent")
                        if [ "x$ptree" = "x$ctree" ]; then
                                psame+=" $parent"
                        fi
@@ -605,11 +606,11 @@ t-sametree-parent () {
 }
 
 t-check-pushed-master () {
-       local master=`t-git-get-ref refs/heads/master`
+       local master; master=`t-git-get-ref refs/heads/master`
        if [ x$master = x$t_ref_val ]; then return; fi
        if [ x$master = x ]; then fail "failed to push master"; fi
        # didn't update master, it must be not FF
-       local mbase=`t-git-merge-base $master $t_ref_val`
+       local mbase; mbase=`t-git-merge-base $master $t_ref_val`
        if [ x$mbase = x$master ]; then fail "failed to ff master"; fi
 }
 
@@ -822,7 +823,7 @@ t-incoming-dsc () {
 
 t-ref-dsc-dgit () {
        t-incoming-dsc
-       local val=`t-822-field $incoming_dsc Dgit`
+       local val; val=`t-822-field $incoming_dsc Dgit`
        perl -e '$_=shift @ARGV; die "Dgit $_ ?" unless m/^\w+\b/;' "$val"
        t-ref-same-val $incoming_dsc "$val"
 }
index 30fbb5a..ee2975d 100644 (file)
@@ -86,7 +86,7 @@ bm-quirk-sbuild-after-act () {
        # run.  We know it must be running it in the chroot because we
        # provide sbuild with the dsc, not the tree, so we simply
        # ignore all executions of the clean target by schroot.
-       local arch=$(dpkg-architecture -qDEB_BUILD_ARCH)
+       local arch; arch=$(dpkg-architecture -qDEB_BUILD_ARCH)
        local sblog=../example_${v}_$arch.build
        if [ -e $sblog ]; then
                sed '
@@ -199,7 +199,7 @@ bm-run-one () {
        bm-report-test "SOURCE FILE" [ -e $dsc ]
 
        if [ $actual_status = success ]; then
-               local changes=$(echo ../example_${v}_*.changes)
+               local changes; changes=$(echo ../example_${v}_*.changes)
                case "$changes" in
                *' '*)  fail "build generated ambiguous .changes: $changes" ;;
                esac
index cbfda46..6cdffeb 100644 (file)
@@ -27,7 +27,7 @@ t-set-using-tmp () {
 }
 
 t-filter-out-git-hyphen-dir () {
-       local pathent=$(type -p git-rev-parse ||:)
+       local pathent; pathent=$(type -p git-rev-parse ||:)
        case "$pathent" in '') return ;; esac
        pathent=${pathent%/*}
        local path=":$PATH:"
index d025d48..af33143 100644 (file)
@@ -36,7 +36,7 @@ t-reprepro-setup () {
 
        exec 3>$rrc/distributions
 
-       local arch=`dpkg --print-architecture`
+       local arch; arch=`dpkg --print-architecture`
 
        for suitespec in $suitespecs; do
                local suite=${suitespec%%:*}
index 96a5bcb..40bd6e9 100755 (executable)
@@ -5,7 +5,7 @@ fail () { echo >&2 "$0: $*"; exit 1; }
 play=.git/tartree-edit-work
 
 git_manip_play () {
-       local wd=$(pwd)
+       local wd; wd=$(pwd)
        case "$wd" in
        *.edit) fail "bad idea to run gitfetchinfo into a .edit tree!" ;;
        esac
@@ -127,7 +127,7 @@ tryat_gitfetchinfo () {
                exec 3<&-
        fi
 
-       local innerwd="$(echo $play/*)"
+       local innerwd; innerwd="$(echo $play/*)"
 
        git for-each-ref --format='%(refname)' refs/remotes >$play/l
        perl -w -ne '
index c8a5c5a..8457b59 100755 (executable)
@@ -30,7 +30,7 @@ push_and_check () {
 }
 
 t-check-master-undisturbed () {
-       local master=`t-git-get-ref refs/heads/master`
+       local master; master=`t-git-get-ref refs/heads/master`
        if [ x$master != x$oldmaster ]; then fail "bad update to master"; fi
 }
 
index b1e0c5f..3f84881 100755 (executable)
@@ -37,7 +37,7 @@ copy-check () {
         git merge --ff-only dgit/dgit/$tosuite
 
         copy-check-good
-        local fetched=$(t-sametree-parent HEAD)
+        local fetched; fetched=$(t-sametree-parent HEAD)
        cd ..
 
        rm -rf example.cloned
@@ -46,7 +46,7 @@ copy-check () {
        cd example.cloned
         t-refs-same-start
         copy-check-good
-        local cloned=$(t-sametree-parent HEAD)  
+        local cloned; cloned=$(t-sametree-parent HEAD)  
        cd ..
 
        rm -rf example.initd
@@ -57,7 +57,7 @@ copy-check () {
         t-dgit -p $p fetch $tosuite
         git reset --hard refs/remotes/dgit/dgit/$tosuite
         copy-check-good
-        local initd=$(t-sametree-parent HEAD)
+        local initd; initd=$(t-sametree-parent HEAD)
        cd ..
 
        t-refs-same-start