summary refs log tree commit diff
path: root/nixos/modules/system/activation
diff options
context:
space:
mode:
authorSamuel Dionne-Riel <samuel@dionne-riel.com>2018-08-05 19:15:14 -0400
committerSamuel Dionne-Riel <samuel@dionne-riel.com>2018-08-05 19:27:23 -0400
commit6a25a35e704689d2bfa6c39032844674e6fdb3fd (patch)
tree3a8096fb6359fc01df67c0a1812cb7fd90dbba40 /nixos/modules/system/activation
parent2428f5dda13475afba2dee93f4beb2bd97086930 (diff)
downloadnixlib-6a25a35e704689d2bfa6c39032844674e6fdb3fd.tar
nixlib-6a25a35e704689d2bfa6c39032844674e6fdb3fd.tar.gz
nixlib-6a25a35e704689d2bfa6c39032844674e6fdb3fd.tar.bz2
nixlib-6a25a35e704689d2bfa6c39032844674e6fdb3fd.tar.lz
nixlib-6a25a35e704689d2bfa6c39032844674e6fdb3fd.tar.xz
nixlib-6a25a35e704689d2bfa6c39032844674e6fdb3fd.tar.zst
nixlib-6a25a35e704689d2bfa6c39032844674e6fdb3fd.zip
nixos/activation: Identifies the snippet that failed
This allows a developer to better identify in which snippet the
failure happened. Furthermore, users seeking help will have more
information available about the failure.
Diffstat (limited to 'nixos/modules/system/activation')
-rw-r--r--nixos/modules/system/activation/activation-script.nix7
1 files changed, 6 insertions, 1 deletions
diff --git a/nixos/modules/system/activation/activation-script.nix b/nixos/modules/system/activation/activation-script.nix
index c563614caaaf..93a1b13a81dd 100644
--- a/nixos/modules/system/activation/activation-script.nix
+++ b/nixos/modules/system/activation/activation-script.nix
@@ -8,7 +8,12 @@ let
   addAttributeName = mapAttrs (a: v: v // {
     text = ''
       #### Activation script snippet ${a}:
+      _localstatus=0
       ${v.text}
+
+      if (( _localstatus > 0 )); then
+        printf "Activation script snippet '%s' failed (%s)\n" "${a}" "$_localstatus"
+      fi
     '';
   });
 
@@ -71,7 +76,7 @@ in
             done
 
             _status=0
-            trap "_status=1" ERR
+            trap "_status=1 _localstatus=\$?" ERR
 
             # Ensure a consistent umask.
             umask 0022