1
0
Fork 0
puter/lib.nix

67 lines
1.3 KiB
Nix
Raw Normal View History

2024-09-15 14:16:32 +02:00
lib: _: {
2025-05-18 01:08:10 +02:00
findModules =
paths:
builtins.concatMap (
path:
2025-01-04 23:51:35 +01:00
lib.pipe path [
2025-05-18 01:08:10 +02:00
(lib.fileset.fileFilter (file: file.hasExt "nix"))
2024-09-15 14:16:32 +02:00
lib.fileset.toList
2025-05-18 01:08:10 +02:00
]
) paths;
2024-09-15 14:16:32 +02:00
2025-05-11 22:49:04 +02:00
mkIfElse =
condition: trueContent: falseContent:
2025-03-01 22:21:00 +01:00
lib.mkMerge [
(lib.mkIf condition trueContent)
(lib.mkIf (!condition) falseContent)
];
2025-05-11 22:49:04 +02:00
mkSecrets =
secrets:
let
mkSecret =
{
name,
secret,
}:
secret
// {
file = ./secrets/${name}.age;
};
in
builtins.mapAttrs (name: secret: mkSecret { inherit name secret; }) secrets;
2024-12-01 04:05:16 +01:00
2025-05-11 22:49:04 +02:00
genNixosConfigurations =
inputs:
let
modulesDir = ./modules;
profilesDir = ./profiles;
commonDir = ./common;
hostsDir = ./hosts;
2024-12-01 04:05:16 +01:00
2025-05-11 22:49:04 +02:00
commonNixosSystem =
name:
lib.nixosSystem {
specialArgs = {
inherit (inputs) self;
inherit inputs lib;
attrName = name;
};
2024-12-01 04:05:16 +01:00
2025-05-18 01:08:10 +02:00
modules = lib.findModules [
modulesDir
profilesDir
commonDir
(hostsDir + /${name})
];
2025-05-11 22:49:04 +02:00
};
2024-12-01 04:05:16 +01:00
2025-05-11 22:49:04 +02:00
hosts = lib.pipe hostsDir [
2025-03-09 16:37:21 +01:00
builtins.readDir
2024-12-01 04:05:16 +01:00
(lib.filterAttrs (_: type: type == "directory"))
builtins.attrNames
];
2025-05-11 22:49:04 +02:00
in
lib.genAttrs hosts commonNixosSystem;
2024-09-15 14:16:32 +02:00
}