nix-configs/lib/default.nix

18 lines
666 B
Nix

{ lib, nixpkgs, inputs, self, ... }: rec {
getDirs = parentDir: lib.mapAttrs (n: v: import v) (lib.filterAttrs (n: v: v == "directory") (builtins.readDir parentDir));
loadInstances = dir: extraModules: lib.mapAttrs
(n: v: loadInstance v extraModules)
(getDirs dir);
loadInstance = extraModules: instance:
nixpkgs.lib.nixosSystem {
system = instance.system;
specialArgs = { inherit inputs; };
modules = instance.modules ++ extraModules ++ [
{
nixpkgs.overlays = [ self.overlays.default ];
nixpkgs.config.allowUnfree = true;
networking.hostName = instance.hostName;
}
];
};
}