summary refs log tree commit diff
path: root/nixos/modules/system/boot
diff options
context:
space:
mode:
authorNikolay Amiantov <ab@fmap.me>2016-07-07 00:44:02 +0300
committerNikolay Amiantov <ab@fmap.me>2016-07-18 13:45:37 +0300
commit86ad25625f7fb6867e515cb09d1da40834f75a9a (patch)
tree7dfd3e205b24f818593abba54fb42e7fafdf036e /nixos/modules/system/boot
parent36459f19777c788ee4bdc0506aba713ff650815e (diff)
downloadnixlib-86ad25625f7fb6867e515cb09d1da40834f75a9a.tar
nixlib-86ad25625f7fb6867e515cb09d1da40834f75a9a.tar.gz
nixlib-86ad25625f7fb6867e515cb09d1da40834f75a9a.tar.bz2
nixlib-86ad25625f7fb6867e515cb09d1da40834f75a9a.tar.lz
nixlib-86ad25625f7fb6867e515cb09d1da40834f75a9a.tar.xz
nixlib-86ad25625f7fb6867e515cb09d1da40834f75a9a.tar.zst
nixlib-86ad25625f7fb6867e515cb09d1da40834f75a9a.zip
nixos stage-1: add custom pre failure dialog commands
Diffstat (limited to 'nixos/modules/system/boot')
-rw-r--r--nixos/modules/system/boot/stage-1-init.sh2
-rw-r--r--nixos/modules/system/boot/stage-1.nix10
2 files changed, 11 insertions, 1 deletions
diff --git a/nixos/modules/system/boot/stage-1-init.sh b/nixos/modules/system/boot/stage-1-init.sh
index d4277ebd80cf..7705dcb2d125 100644
--- a/nixos/modules/system/boot/stage-1-init.sh
+++ b/nixos/modules/system/boot/stage-1-init.sh
@@ -14,6 +14,8 @@ export LVM_SUPPRESS_FD_WARNINGS=true
 fail() {
     if [ -n "$panicOnFail" ]; then exit 1; fi
 
+    @preFailCommands@
+
     # If starting stage 2 failed, allow the user to repair the problem
     # in an interactive shell.
     cat <<EOF
diff --git a/nixos/modules/system/boot/stage-1.nix b/nixos/modules/system/boot/stage-1.nix
index 56a9c38b8f2b..4b1d3efb4113 100644
--- a/nixos/modules/system/boot/stage-1.nix
+++ b/nixos/modules/system/boot/stage-1.nix
@@ -208,7 +208,7 @@ let
     inherit (config.boot) resumeDevice devSize runSize;
 
     inherit (config.boot.initrd) checkJournalingFS
-      preLVMCommands preDeviceCommands postDeviceCommands postMountCommands kernelModules;
+      preLVMCommands preDeviceCommands postDeviceCommands postMountCommands preFailCommands kernelModules;
 
     resumeDevices = map (sd: if sd ? device then sd.device else "/dev/disk/by-label/${sd.label}")
                     (filter (sd: (sd ? label || hasPrefix "/dev/" sd.device) && !sd.randomEncryption) config.swapDevices);
@@ -336,6 +336,14 @@ in
       '';
     };
 
+    boot.initrd.preFailCommands = mkOption {
+      default = "";
+      type = types.lines;
+      description = ''
+        Shell commands to be executed before the failure prompt is shown.
+      '';
+    };
+
     boot.initrd.extraUtilsCommands = mkOption {
       internal = true;
       default = "";