]> WPIA git - infra.git/commitdiff
fix: correct non-interactive forcing of apt commands
authorLucas Werkmeister <mail@lucaswerkmeister.de>
Sat, 5 Jan 2019 14:04:17 +0000 (15:04 +0100)
committerLucas Werkmeister <mail@lucaswerkmeister.de>
Sat, 5 Jan 2019 14:07:46 +0000 (15:07 +0100)
Change I8998df2b44 (commit 58c1a7f1b0) changed these apt commands to
pipe into `cat` so that they will use non-interactive output. However,
not only was the use of a dedicated subshell and `cat` per command
wasteful, it also introduced a bug – in a pipeline, only the exit status
of the last component matters (unless `set -o pipefail` is in effect):

    $ ( false | cat ) && echo 'This still runs.'
    This still runs.

Change-Id: I22e76749faeec7589e1a4353c6d23db31070daf3

manager/setup

index 0c5643b1ba0e13f6e3a63a0a7509a050147131e1..7f38205770300e1ffce97f120b11cdaa9018882d 100755 (executable)
@@ -36,7 +36,7 @@ function reset_vm {
 }
 function update {
     title 'S1: apt-get; clone'
-    ssh_target -t "( sudo apt-get update | cat ) && ( DEBIAN_FRONTEND=noninteractive sudo -E apt-get upgrade -o Dpkg::Options::=\"--force-confold\" -y | cat ) && ( sudo apt-get install -y git curl $devPkgs | cat )"
+    ssh_target -t "{ sudo apt-get update && DEBIAN_FRONTEND=noninteractive sudo -E apt-get upgrade -o Dpkg::Options::=\"--force-confold\" -y && sudo apt-get install -y git curl $devPkgs; } | cat"
     echo "Git init"
     ssh_target -t '[[ -d .git ]] || git init;'
     echo "Git push"