funnier abstractions

This commit is contained in:
Gerg-L 2024-08-16 23:28:48 -04:00
parent 66091358d5
commit e30687954a
Signed by: gerg-l
SSH key fingerprint: SHA256:FPYDHIkvMocr4wdmZXpgpJjsb2Tw6rASs2ISPbOb0KI
6 changed files with 40 additions and 34 deletions

View file

@ -167,39 +167,45 @@ rec {
(lib.foldAttrs lib.mergeAttrs { })
];
mkHosts =
system:
lib.flip lib.genAttrs (
hostName:
# Whats lib.nixosSystem? never heard of her
lib.evalModules {
mkHosts = wrench [
builtins.readDir
(lib.filterAttrs (_: v: v == "directory"))
builtins.attrNames
(map (x: {
name = x;
value = lib.evalModules {
specialArgs.modulesPath = "${unstable}/nixos/modules";
modules = builtins.concatLists [
(builtins.attrValues self.nixosModules)
(map addSchizophreniaToModule (listNixFilesRecursive "${self}/hosts/${hostName}"))
(map addSchizophreniaToModule (listNixFilesRecursive "${self}/hosts/${x}"))
(import "${unstable}/nixos/modules/module-list.nix")
(lib.singleton {
networking = {
inherit hostName;
};
nixpkgs.hostPlatform = system;
})
(lib.optionals (self.diskoConfigurations ? "disko-${hostName}") [
self.diskoConfigurations."disko-${hostName}"
(lib.optionals (self.diskoConfigurations ? "disko-${x}") [
self.diskoConfigurations."disko-${x}"
disko.nixosModules.default
])
];
}
);
mkDisko = wrench [
(map (name: {
name = "disko-${name}";
value.disko.devices = import "${self}/disko/${name}.nix" lib;
};
}))
builtins.listToAttrs
];
mkDisko =
path:
lib.pipe path [
builtins.readDir
(lib.filterAttrs (n: v: v == "regular" && lib.hasSuffix ".nix" n))
builtins.attrNames
(map (x: {
name = lib.pipe x [
(lib.removeSuffix path)
(lib.removeSuffix ".nix")
(x: "disko-${x}")
];
value.disko.devices = import "${path}/${x}" lib;
}))
builtins.listToAttrs
];
/*
/<name> -> packages named by directory
/<name>/call.nix -> callPackage override imported via import <file> pkgs