diff options
author | Cornelius Mika <cornelius.mika@gmail.com> | 2017-08-17 10:16:25 +0200 |
---|---|---|
committer | Robert Helgesson <robert@rycee.net> | 2017-08-20 09:50:37 +0200 |
commit | a9d9fb5d75b57fd9932aeab957c6b938fb6e41a2 (patch) | |
tree | 8ff85f9288d058e925c691de89cf9500839bddc6 /home-manager/home-manager | |
parent | ffbc7e723d78f479256828102c9eb367831982f1 (diff) |
home-manager: exit with an error on build failure
Because 'set -e' has no effect on commands that run in an if condition,
the script was always exiting with no error when 'doBuild' failed.
As a bonus, $wrkdir is now always removed after building.
Diffstat (limited to 'home-manager/home-manager')
-rw-r--r-- | home-manager/home-manager | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/home-manager/home-manager b/home-manager/home-manager index d6d17053e25..f599d9008d3 100644 --- a/home-manager/home-manager +++ b/home-manager/home-manager @@ -91,11 +91,13 @@ function doSwitch() { local wrkdir wrkdir="$(mktemp -d)" - if doBuild "$wrkdir/generation" ; then - "$wrkdir/generation/activate" - fi + local exitCode=0 + doBuild "$wrkdir/generation" && "$wrkdir/generation/activate" || exitCode=1 + # Because the previous command never fails, the script keeps running and + # $wrkdir is always removed. rm -r "$wrkdir" + return $exitCode } function doListGens() { |