whatever
This commit is contained in:
parent
be9fb9278e
commit
b8af0e9761
165 changed files with 1815 additions and 1431 deletions
97
lib.nix
97
lib.nix
|
@ -9,72 +9,59 @@ lib: _: {
|
|||
])
|
||||
paths;
|
||||
|
||||
mkIfElse = condition: trueContent: falseContent:
|
||||
mkIfElse =
|
||||
condition: trueContent: falseContent:
|
||||
lib.mkMerge [
|
||||
(lib.mkIf condition trueContent)
|
||||
(lib.mkIf (!condition) falseContent)
|
||||
];
|
||||
|
||||
mkSecrets = secrets: let
|
||||
mkSecret = {
|
||||
name,
|
||||
secret,
|
||||
}:
|
||||
secret
|
||||
// {
|
||||
file = ./secrets/${name}.age;
|
||||
};
|
||||
in
|
||||
builtins.mapAttrs (name: secret: mkSecret {inherit name secret;}) secrets;
|
||||
mkSecrets =
|
||||
secrets:
|
||||
let
|
||||
mkSecret =
|
||||
{
|
||||
name,
|
||||
secret,
|
||||
}:
|
||||
secret
|
||||
// {
|
||||
file = ./secrets/${name}.age;
|
||||
};
|
||||
in
|
||||
builtins.mapAttrs (name: secret: mkSecret { inherit name secret; }) secrets;
|
||||
|
||||
genNixosConfigurations = {
|
||||
inputs,
|
||||
extraModules ? _: [],
|
||||
}: let
|
||||
modulesDir = ./modules;
|
||||
commonDir = ./common;
|
||||
classesDir = ./classes;
|
||||
hostsDir = ./hosts;
|
||||
genNixosConfigurations =
|
||||
inputs:
|
||||
let
|
||||
modulesDir = ./modules;
|
||||
profilesDir = ./profiles;
|
||||
commonDir = ./common;
|
||||
hostsDir = ./hosts;
|
||||
|
||||
commonNixosSystem = {
|
||||
class,
|
||||
name,
|
||||
}:
|
||||
lib.nixosSystem {
|
||||
specialArgs = {
|
||||
inherit (inputs) self;
|
||||
inherit inputs lib;
|
||||
attrName = name;
|
||||
commonNixosSystem =
|
||||
name:
|
||||
lib.nixosSystem {
|
||||
specialArgs = {
|
||||
inherit (inputs) self;
|
||||
inherit inputs lib;
|
||||
attrName = name;
|
||||
};
|
||||
|
||||
modules =
|
||||
(lib.findModules [
|
||||
modulesDir
|
||||
profilesDir
|
||||
commonDir
|
||||
(hostsDir + /${name})
|
||||
]);
|
||||
};
|
||||
|
||||
modules =
|
||||
(lib.findModules [
|
||||
modulesDir
|
||||
commonDir
|
||||
./classes/${class}
|
||||
(classesDir + /${class})
|
||||
(hostsDir + /${class}/${name})
|
||||
])
|
||||
++ [
|
||||
{networking.hostName = lib.mkDefault name;}
|
||||
]
|
||||
++ (extraModules {inherit class name;});
|
||||
};
|
||||
|
||||
dirsIn = dir:
|
||||
lib.pipe dir [
|
||||
hosts = lib.pipe hostsDir [
|
||||
builtins.readDir
|
||||
(lib.filterAttrs (_: type: type == "directory"))
|
||||
builtins.attrNames
|
||||
];
|
||||
in
|
||||
lib.pipe (dirsIn hostsDir) [
|
||||
(classes:
|
||||
builtins.concatMap (
|
||||
class: map (name: {inherit class name;}) (dirsIn (hostsDir + /${class}))
|
||||
)
|
||||
classes)
|
||||
(map (args: lib.nameValuePair args.name (commonNixosSystem args)))
|
||||
builtins.listToAttrs
|
||||
];
|
||||
in
|
||||
lib.genAttrs hosts commonNixosSystem;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue