nix-configs/lib/default.nix

58 lines
1.4 KiB
Nix

{
lib,
nixpkgs,
inputs,
self,
...
}:
rec {
getDirs =
parentDir:
lib.mapAttrs (n: v: (import "${parentDir}/${n}")) (
lib.filterAttrs (n: v: v == "directory") (builtins.readDir parentDir)
);
loadInstances =
dir: extraModules: lib.mapAttrs (n: v: loadInstance extraModules v (getDirs dir)) (getDirs dir);
loadInstance =
extraModules: instance: instanceConfigs:
nixpkgs.lib.nixosSystem {
specialArgs = {
inherit inputs instanceConfigs;
instanceConfig = instance;
};
modules =
instance.modules
++ extraModules
++ [
(
{ pkgs, ... }:
{
nixpkgs.overlays = [
(final: prev: {
inherit (final.unstable.lixPackageSets.latest)
nixpkgs-review
nix-direnv
nix-eval-jobs
nix-fast-build
colmena
;
})
];
nix.package = pkgs.unstable.lixPackageSets.latest.lix;
}
)
(
{ pkgs, ... }:
{
nixpkgs.overlays = [
self.overlays.default
];
nixpkgs.config.allowUnfree = true;
networking.hostName = instance.hostName;
}
)
];
};
}