boot.loader.systemd-boot: add extraInstallCommands option (#200715)

Changed files
+23 -1
nixos
modules
system
boot
loader
systemd-boot
+23 -1
nixos/modules/system/boot/loader/systemd-boot/systemd-boot.nix
···
--disallow-untyped-defs \
$out
'';
+
+
finalSystemdBootBuilder = pkgs.writeScript "install-systemd-boot.sh" ''
+
#!${pkgs.runtimeShell}
+
${checkedSystemdBootBuilder} "$@"
+
${cfg.extraInstallCommands}
+
'';
in {
imports =
···
`null` means no limit i.e. all generations
that were not garbage collected yet.
+
'';
+
};
+
+
extraInstallCommands = mkOption {
+
default = "";
+
example = ''
+
default_cfg=$(cat /boot/loader/loader.conf | grep default | awk '{print $2}')
+
init_value=$(cat /boot/loader/entries/$default_cfg | grep init= | awk '{print $2}')
+
sed -i "s|@INIT@|$init_value|g" /boot/custom/config_with_placeholder.conf
+
'';
+
type = types.lines;
+
description = lib.mdDoc ''
+
Additional shell commands inserted in the bootloader installer
+
script after generating menu entries. It can be used to expand
+
on extra boot entries that cannot incorporate certain pieces of
+
information (such as the resulting `init=` kernel parameter).
'';
};
···
];
system = {
-
build.installBootLoader = checkedSystemdBootBuilder;
+
build.installBootLoader = finalSystemdBootBuilder;
boot.loader.id = "systemd-boot";