aboutsummaryrefslogtreecommitdiff
path: root/home-manager/home-manager
diff options
context:
space:
mode:
authorCornelius Mika <cornelius.mika@gmail.com>2017-08-17 10:16:25 +0200
committerRobert Helgesson <robert@rycee.net>2017-08-20 09:50:37 +0200
commita9d9fb5d75b57fd9932aeab957c6b938fb6e41a2 (patch)
tree8ff85f9288d058e925c691de89cf9500839bddc6 /home-manager/home-manager
parentffbc7e723d78f479256828102c9eb367831982f1 (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-manager8
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() {