34 lines
702 B
Nix
34 lines
702 B
Nix
{ lib
|
|
, pkgs
|
|
, config
|
|
, ...
|
|
}:
|
|
{
|
|
options.system-manager = {
|
|
services = lib.mkOption {
|
|
type = with lib.types; listOf str;
|
|
};
|
|
|
|
etcFiles = lib.mkOption {
|
|
type = with lib.types; listOf str;
|
|
};
|
|
};
|
|
|
|
config = {
|
|
# Avoid some standard NixOS assertions
|
|
boot = {
|
|
loader.grub.enable = false;
|
|
initrd.enable = false;
|
|
};
|
|
|
|
assertions = lib.flip map config.system-manager.etcFiles (entry:
|
|
{
|
|
assertion = lib.hasAttr entry config.environment.etc;
|
|
message = lib.concatStringsSep " " [
|
|
"The entry ${entry} that was passed to system-manager.etcFiles"
|
|
"is not present in environment.etc"
|
|
];
|
|
}
|
|
);
|
|
};
|
|
}
|