flake/systems/default.nix
2024-04-01 23:23:14 +02:00

73 lines
1.5 KiB
Nix

{
lib,
self,
inputs,
...
}: let
# shamelessly borrowed from https://github.com/getchoo/flake/blob/94dc521310b34b80158d1a0ab65d4daa3a44d81e/systems/default.nix
toSystem = builder: name: args:
(args.builder or builder) (
(builtins.removeAttrs args ["builder"])
// {
modules =
args.modules
++ [
./${name}
./${name}/hardware-configuration.nix
{networking.hostName = name;}
];
specialArgs = inputs;
}
);
mapNixOS = lib.mapAttrs (toSystem inputs.nixpkgs.lib.nixosSystem);
nixos = with inputs; [
../configs/common.nix
agenix.nixosModules.default
home-manager.nixosModules.home-manager
vscode-server.nixosModules.default
];
desktop = with inputs;
[
../configs/desktop.nix
lanzaboote.nixosModules.lanzaboote
catppuccin.nixosModules.catppuccin
]
++ nixos;
in {
flake.nixosConfigurations = mapNixOS {
fuji = {
system = "x86_64-linux";
modules = desktop;
};
fuji-wsl = {
system = "x86_64-linux";
modules =
nixos
++ (with inputs; [
nixos-wsl.nixosModules.default
]);
};
kilimandjaro = {
system = "x86_64-linux";
modules = desktop;
};
etna = {
system = "x86_64-linux";
modules =
nixos
++ (with inputs; [
attic.nixosModules.atticd
api-rs.nixosModules.default
ukubot-rs.nixosModules.default
self.nixosModules.reposilite
]);
};
};
}