base/export/iso.nix

50 lines
1.1 KiB
Nix

{
nixosUsers ? { },
nixosGroups ? { },
nixosModules,
hmModules ? {
default = { };
},
...
}@flake:
{ ... }@inputs:
{ host, ... }@imports:
let
host' =
name: snippets:
let
overlay = self: super: {
makeModulesClosure = x: super.makeModulesClosure (x // { allowMissing = true; });
};
common =
{ modulesPath, lib, ... }:
{
config.nixpkgs.overlays = [ overlay ];
config.networking.hostName = lib.mkForce name;
config.home-manager = {
sharedModules = [ hmModules.default ];
};
imports = [
(modulesPath + "/installer/cd-dvd/installation-cd-minimal-new-kernel-no-zfs.nix")
nixosModules.default
inputs.home-manager.nixosModules.default
];
};
system = inputs.nixpkgs.lib.nixosSystem {
specialArgs = { inherit inputs flake; };
modules = [
common
]
++ snippets
++ builtins.attrValues nixosUsers
++ builtins.attrValues nixosGroups;
};
in
system.config.system.build.isoImage;
in
builtins.mapAttrs host' host