refactor hosts/default.nix

This commit is contained in:
Sean Buckley 2021-04-11 16:41:49 -04:00
parent 818011e3e8
commit 01851cb48e

View file

@ -3,43 +3,38 @@ let
hostMetadata =
let
inherit (builtins) readDir concatMap attrNames;
fs = readDir ./.;
fs = builtins.readDir ./.;
inherit (builtins) concatMap attrNames;
hostNames = concatMap (x: if fs.${x} == "directory" then [ x ] else [ ]) (attrNames fs);
in
map
(hn: { name = hn; inherit (import (./. + "/${hn}")) hardware pkgs system; })
hostNames;
builtins.listToAttrs (map
(hn: { name = hn; value = import (./. + "/${hn}"); })
hostNames);
hardwareModule = { pkgs, hardware }: (
hardwareModule = hardware: (
{
qemu = (x: { imports = [ "${x.modulesPath}/profiles/qemu-guest.nix" ]; });
physical = pkgs.nixosModules.notDetected;
physical = (x: { imports = [ "${x.modulesPath}/installer/scan/not-detected.nix" ]; });
}
).${hardware};
in
builtins.listToAttrs (
map
(h:
let pkgs = { inherit unstable stable2009; }.${h.pkgs};
in
{
name = h.name;
value = pkgs.lib.nixosSystem {
system = h.system;
modules = [
(sconfig)
(./. + "/${h.name}/configuration.nix")
(hardwareModule { inherit pkgs; inherit (h) hardware; })
({ ... }: {
networking.hostName = h.name;
sconfig.flakes.enable = true;
sconfig.flakes.rebuildPath = "github:buckley310/nixos-config";
})
];
};
}
)
hostMetadata
)
builtins.mapAttrs
(n: v:
let pkgs = { inherit unstable stable2009; }.${v.pkgs};
in
pkgs.lib.nixosSystem {
inherit (v) system;
modules = [
(sconfig)
(./. + "/${n}/configuration.nix")
(hardwareModule v.hardware)
({ ... }: {
networking.hostName = n;
sconfig.flakes.enable = true;
sconfig.flakes.rebuildPath = "github:buckley310/nixos-config";
})
];
}
)
hostMetadata