alqueva/lib/default.nix

48 lines
1.3 KiB
Nix
Raw Normal View History

2024-10-16 00:03:53 +01:00
{inputs}: _: _: let
mkComputer = {
host,
system,
user,
extraModules ? [],
}:
inputs.nixpkgs.lib.nixosSystem {
inherit system;
modules =
extraModules
++ [
2024-10-16 01:44:45 +01:00
../computers/${host}
2024-10-16 08:55:04 +01:00
inputs.self.nixosModules.default
2024-10-16 00:03:53 +01:00
({config, ...}: {
config = {
2024-10-29 15:37:11 +00:00
alqueva.xonsh.enable = true;
2024-10-16 00:03:53 +01:00
nix = {
settings.extra-experimental-features = [
"nix-command"
"flakes"
];
gc = {
automatic = true;
dates = "weekly";
};
};
2024-11-26 13:51:16 +00:00
nixpkgs.config.allowUnfree = true;
2024-10-16 00:03:53 +01:00
environment.shellAliases = {
rebs = "nixos-rebuild --use-remote-sudo switch --flake .#${host}";
rebt = "nixos-rebuild --use-remote-sudo test --flake .#${host}";
};
2024-10-16 17:01:46 +01:00
nixpkgs.overlays = [
inputs.self.overlays.default
];
2024-10-16 00:03:53 +01:00
networking.hostName = host;
};
})
];
specialArgs = {
inherit inputs;
inherit (inputs) self;
};
};
in {
mkComputers = computers: builtins.mapAttrs (n: v: mkComputer (v // {host = n;})) computers;
}