From cda222d2ec652e870676d40fbf0c91ab90ce37e0 Mon Sep 17 00:00:00 2001 From: Robert Helgesson Date: Sat, 9 Sep 2017 17:14:07 +0200 Subject: home-manager: present news even if assertion failed --- home-manager/home-manager | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) (limited to 'home-manager') 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 } -- cgit v1.2.3