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