- Redid the flake module to be based on extendModules instead - Added wrappers - Refactored code - Updated dependencies
56 lines
1.1 KiB
Nix
56 lines
1.1 KiB
Nix
{
|
|
config,
|
|
self,
|
|
inputs,
|
|
lib,
|
|
...
|
|
}: {
|
|
builders = {
|
|
nixos = name: module: let
|
|
combinedInputs = inputs // {settei = self;};
|
|
baseOptions = {
|
|
settei.flake-qol = {
|
|
enable = true;
|
|
inputs = combinedInputs;
|
|
};
|
|
};
|
|
base = inputs.nixpkgs.lib.nixosSystem {
|
|
modules = [
|
|
inputs.agenix.nixosModules.age
|
|
inputs.disko.nixosModules.disko
|
|
inputs.mailserver.nixosModules.default
|
|
self.nixosModules.settei
|
|
baseOptions
|
|
];
|
|
};
|
|
defaultOptions = {
|
|
username,
|
|
inputs',
|
|
lib,
|
|
...
|
|
}: {
|
|
settei = {
|
|
username = lib.mkDefault "niko";
|
|
sane-defaults.enable = lib.mkDefault true;
|
|
};
|
|
|
|
users.users.${username}.packages = lib.attrValues inputs'.settei.packages;
|
|
};
|
|
in
|
|
base.extendModules {
|
|
modules = [
|
|
defaultOptions
|
|
module
|
|
];
|
|
specialArgs = {
|
|
prev = base;
|
|
configurationName = name;
|
|
};
|
|
};
|
|
};
|
|
|
|
imports = [
|
|
./kazuki
|
|
./hijiri-vm
|
|
];
|
|
}
|