From: Ian Jackson Date: Fri, 6 Jan 2017 19:49:23 +0000 (+0000) Subject: Shell bug: avoid local=$(....) as it defeats set -e X-Git-Tag: archive/debian/2.16~4 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=dgit.git;a=commitdiff_plain;h=a5ab9e488522b8fb74a6eadc4a7acf9199e782c4 Shell bug: avoid local=$(....) as it defeats set -e Signed-off-by: Ian Jackson --- diff --git a/infra/dgit-mirror-rsync b/infra/dgit-mirror-rsync index 0d29ffb3..93464892 100755 --- a/infra/dgit-mirror-rsync +++ b/infra/dgit-mirror-rsync @@ -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 ;; diff --git a/tests/lib b/tests/lib index f2414ae4..50d614ee 100644 --- 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" } diff --git a/tests/lib-build-modes b/tests/lib-build-modes index 30fbb5a9..ee2975d0 100644 --- a/tests/lib-build-modes +++ b/tests/lib-build-modes @@ -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 diff --git a/tests/lib-core b/tests/lib-core index cbfda462..6cdffeb1 100644 --- a/tests/lib-core +++ b/tests/lib-core @@ -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:" diff --git a/tests/lib-reprepro b/tests/lib-reprepro index d025d48d..af331432 100644 --- a/tests/lib-reprepro +++ b/tests/lib-reprepro @@ -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%%:*} diff --git a/tests/tartree-edit b/tests/tartree-edit index 96a5bcb0..40bd6e96 100755 --- a/tests/tartree-edit +++ b/tests/tartree-edit @@ -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 ' diff --git a/tests/tests/drs-push-masterupdate b/tests/tests/drs-push-masterupdate index c8a5c5a4..8457b59d 100755 --- a/tests/tests/drs-push-masterupdate +++ b/tests/tests/drs-push-masterupdate @@ -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 } diff --git a/tests/tests/inarchivecopy b/tests/tests/inarchivecopy index b1e0c5f2..3f848815 100755 --- a/tests/tests/inarchivecopy +++ b/tests/tests/inarchivecopy @@ -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