nixos/uki: add configFile option
This option makes it easier to reuse a system's ukify.conf without the need for manually calling the generator on `settings` again to receive a rendered configuration file. Theoretically, a complete configuration file could now be provided by users.
This commit is contained in:
parent
9a747326c4
commit
e9fa0ec5fe
1 changed files with 12 additions and 3 deletions
|
@ -7,8 +7,6 @@ let
|
||||||
inherit (pkgs.stdenv.hostPlatform) efiArch;
|
inherit (pkgs.stdenv.hostPlatform) efiArch;
|
||||||
|
|
||||||
format = pkgs.formats.ini { };
|
format = pkgs.formats.ini { };
|
||||||
ukifyConfig = format.generate "ukify.conf" cfg.settings;
|
|
||||||
|
|
||||||
in
|
in
|
||||||
|
|
||||||
{
|
{
|
||||||
|
@ -48,6 +46,15 @@ in
|
||||||
contains and how it is built.
|
contains and how it is built.
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
configFile = lib.mkOption {
|
||||||
|
type = lib.types.path;
|
||||||
|
description = lib.mdDoc ''
|
||||||
|
The configuration file passed to {manpage}`ukify(1)` to create the UKI.
|
||||||
|
|
||||||
|
By default this configuration file is created from {option}`boot.uki.settings`.
|
||||||
|
'';
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
system.boot.loader.ukiFile = lib.mkOption {
|
system.boot.loader.ukiFile = lib.mkOption {
|
||||||
|
@ -80,6 +87,8 @@ in
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
boot.uki.configFile = lib.mkOptionDefault (format.generate "ukify.conf" cfg.settings);
|
||||||
|
|
||||||
system.boot.loader.ukiFile =
|
system.boot.loader.ukiFile =
|
||||||
let
|
let
|
||||||
name = config.boot.uki.name;
|
name = config.boot.uki.name;
|
||||||
|
@ -92,7 +101,7 @@ in
|
||||||
system.build.uki = pkgs.runCommand config.system.boot.loader.ukiFile { } ''
|
system.build.uki = pkgs.runCommand config.system.boot.loader.ukiFile { } ''
|
||||||
mkdir -p $out
|
mkdir -p $out
|
||||||
${pkgs.buildPackages.systemdUkify}/lib/systemd/ukify build \
|
${pkgs.buildPackages.systemdUkify}/lib/systemd/ukify build \
|
||||||
--config=${ukifyConfig} \
|
--config=${cfg.configFile} \
|
||||||
--output="$out/${config.system.boot.loader.ukiFile}"
|
--output="$out/${config.system.boot.loader.ukiFile}"
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue