Unverified Commit 5bc1b01a authored by Markus Partheymueller's avatar Markus Partheymueller Committed by GitHub
Browse files

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

parent b60aa0e0
Loading
Loading
Loading
Loading
+23 −1
Original line number Diff line number Diff line
@@ -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";