add dynamic system generation (#46)

This commit is contained in:
Dennis
2024-01-30 18:37:13 +01:00
committed by GitHub
parent 664fa4709b
commit 6d54aec60c
7 changed files with 105 additions and 75 deletions

View File

@ -143,47 +143,27 @@
++ map (user: { home-manager.users.${user} = import ./users/${user}/home.nix; }) users;
};
in
{
jeeves-jr = constructSystem {
hostname = "jeeves-jr";
users = [
"alice"
"dennis"
"richie"
];
};
palatine-hill = constructSystem {
hostname = "palatine-hill";
users = [
"alice"
"dennis"
"richie"
];
};
photon = constructSystem {
hostname = "photon";
users = [
"alice"
"dennis"
"richie"
];
};
} // (builtins.listToAttrs (builtins.concatMap
(builtins.listToAttrs (map
(system: {
name = system;
value = constructSystem { hostname = system; } // (import ./systems/${system} { });
})
(lsdir "systems"))) //
(builtins.listToAttrs (builtins.concatMap
(user: map
(system: {
(system: rec {
name = "${user}.${system}";
cfg = import ./users/${user}/systems/${system} { };
value = lib.nixosSystem {
system = "x86_64-linux";
system = cfg.system ? "x86_64-linux";
modules = [
nixos-modules.nixosModule
home-manager.nixosModules.home-manager
sops-nix.nixosModules.sops
./users/${user}/systems/${system}/configuration.nix
./users/${user}/systems/${system}/hardware.nix
{ config.networking.hostName = "${system}"; }
] ++ fileList "modules";
] ++ fileList "modules"
++ lib.optional (cfg.home-manager ? false) home-manager.nixosModules.home-manager;
};
})
(lsdir "users/${user}/systems"))