aboutsummaryrefslogtreecommitdiff
path: root/home-manager
diff options
context:
space:
mode:
authorRobert Helgesson <robert@rycee.net>2017-09-09 17:14:07 +0200
committerRobert Helgesson <robert@rycee.net>2017-09-09 17:14:07 +0200
commitcda222d2ec652e870676d40fbf0c91ab90ce37e0 (patch)
tree4ba00f7df1573c34411d647862fdc11e9851d155 /home-manager
parent07b4228988711fd4a23547fa7a9bc78f56254135 (diff)
home-manager: present news even if assertion failed
Diffstat (limited to 'home-manager')
-rw-r--r--home-manager/home-manager24
1 files changed, 17 insertions, 7 deletions
diff --git a/home-manager/home-manager b/home-manager/home-manager
index 329dd8d5cbe..97166d6f99b 100644
--- a/home-manager/home-manager
+++ b/home-manager/home-manager
@@ -73,9 +73,10 @@ function doBuildAttr() {
--argstr confAttr "$HOME_MANAGER_CONFIG_ATTRIBUTE"
}
+# Presents news to the user. Takes as argument the path to a "news
+# info" file as generated by `buildNews`.
function presentNews() {
- local infoFile
- infoFile=$(buildNews) || return 1
+ local infoFile="$1"
# shellcheck source=/dev/null
. "$infoFile"
@@ -111,11 +112,22 @@ function presentNews() {
}
function doBuild() {
- doBuildAttr -A activationPackage
- presentNews
+ local newsInfo
+ newsInfo=$(buildNews)
+
+ local exitCode
+ doBuildAttr -A activationPackage \
+ && exitCode=0 || exitCode=1
+
+ presentNews "$newsInfo"
+
+ return $exitCode
}
function doSwitch() {
+ local newsInfo
+ newsInfo=$(buildNews)
+
local generation
local exitCode=0
local wrkdir
@@ -132,9 +144,7 @@ function doSwitch() {
# running and $wrkdir is always removed.
rm -r "$wrkdir"
- if [[ $exitCode -eq 0 ]]; then
- presentNews
- fi
+ presentNews "$newsInfo"
return $exitCode
}