0
0
Fork 0
mirror of https://github.com/NixOS/nixpkgs.git synced 2025-07-13 21:50:33 +03:00

nixos/generic-extlinux-compatible: introduce boot.loader.generic-extlinux-compatible.populateCmd

This option exposes the builder command used to populate an image,
honoring all options except the -c <path-to-default-configuration>
argument.

Useful to have for sdImage.populateRootCommands.

Special care needs to be taken w.r.t cross - the populate command runs
on the host platform, the activation script on the build platform (so
the builders differ)
This commit is contained in:
Florian Klink 2020-06-21 11:18:37 +02:00
parent 43424688db
commit 54129e72b4

View file

@ -8,7 +8,10 @@ let
timeoutStr = if blCfg.timeout == null then "-1" else toString blCfg.timeout; timeoutStr = if blCfg.timeout == null then "-1" else toString blCfg.timeout;
# The builder used to write during system activation
builder = import ./extlinux-conf-builder.nix { inherit pkgs; }; builder = import ./extlinux-conf-builder.nix { inherit pkgs; };
# The builder exposed in populateCmd, which runs on the build architecture
populateBuilder = import ./extlinux-conf-builder.nix { pkgs = pkgs.buildPackages; };
in in
{ {
options = { options = {
@ -34,11 +37,28 @@ in
Maximum number of configurations in the boot menu. Maximum number of configurations in the boot menu.
''; '';
}; };
populateCmd = mkOption {
type = types.str;
readOnly = true;
description = ''
Contains the builder command used to populate an image,
honoring all options except the -c <path-to-default-configuration>
argument.
Useful to have for sdImage.populateRootCommands
'';
};
}; };
}; };
config = mkIf cfg.enable { config = let
system.build.installBootLoader = "${builder} -g ${toString cfg.configurationLimit} -t ${timeoutStr} -c"; builderArgs = "-g ${toString cfg.configurationLimit} -t ${timeoutStr}";
system.boot.loader.id = "generic-extlinux-compatible"; in
}; mkIf cfg.enable {
system.build.installBootLoader = "${builder} ${builderArgs} -c";
system.boot.loader.id = "generic-extlinux-compatible";
boot.loader.generic-extlinux-compatible.populateCmd = "${populateBuilder} ${builderArgs}";
};
} }