settei/hosts/default.nix
Nikodem Rabuliński ee7223ca36
Minor changes
- Redid the flake module to be based on extendModules instead
- Added wrappers
- Refactored code
- Updated dependencies
2023-08-31 22:27:07 +02:00

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
];
}