46 lines
955 B
Nix
46 lines
955 B
Nix
|
{
|
||
|
inputs,
|
||
|
nixosModules,
|
||
|
overlays,
|
||
|
userdata,
|
||
|
...
|
||
|
}: {
|
||
|
# Helper function for generating host configurations.
|
||
|
mkHost = {
|
||
|
hostname,
|
||
|
system ? "x86_64-linux",
|
||
|
extraArgs ? {},
|
||
|
extraModules ? [],
|
||
|
}: let
|
||
|
inherit (inputs.nixpkgs) lib;
|
||
|
in
|
||
|
inputs.nixpkgs.lib.nixosSystem {
|
||
|
inherit system;
|
||
|
specialArgs =
|
||
|
{inherit inputs userdata;}
|
||
|
// extraArgs;
|
||
|
|
||
|
modules =
|
||
|
[
|
||
|
{
|
||
|
networking.hostName = lib.mkDefault hostname;
|
||
|
nixpkgs.overlays = overlays;
|
||
|
}
|
||
|
../machines/${hostname}
|
||
|
nixosModules.default
|
||
|
inputs.agenix.nixosModules.default
|
||
|
inputs.disko.nixosModules.disko
|
||
|
inputs.home-manager.nixosModules.home-manager
|
||
|
]
|
||
|
++ extraModules;
|
||
|
};
|
||
|
|
||
|
forAllSystems = inputs.nixpkgs.lib.genAttrs [
|
||
|
"aarch64-linux"
|
||
|
"i686-linux"
|
||
|
"x86_64-linux"
|
||
|
"aarch64-darwin"
|
||
|
"x86_64-darwin"
|
||
|
];
|
||
|
}
|