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

This commit is contained in:
Markus Partheymueller 2022-11-14 14:20:58 +01:00 committed by GitHub
parent b60aa0e01c
commit 5bc1b01a40
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -57,6 +57,12 @@ let
--disallow-untyped-defs \
$out
'';
finalSystemdBootBuilder = pkgs.writeScript "install-systemd-boot.sh" ''
#!${pkgs.runtimeShell}
${checkedSystemdBootBuilder} "$@"
${cfg.extraInstallCommands}
'';
in {
imports =
@ -99,6 +105,22 @@ in {
'';
};
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).
'';
};
consoleMode = mkOption {
default = "keep";
@ -277,7 +299,7 @@ in {
];
system = {
build.installBootLoader = checkedSystemdBootBuilder;
build.installBootLoader = finalSystemdBootBuilder;
boot.loader.id = "systemd-boot";