nix-server/lib/nixos.nix
2026-05-14 19:26:16 -07:00

41 lines
851 B
Nix
Executable file

{
inputs,
lib,
self,
...
}: let
inherit (inputs.nixpkgs.lib) nixosSystem;
inherit (lib.modules) mkDefault;
inherit (lib.strings) removeSuffix;
inherit (self.modules) mapModules;
in rec {
mkHost = path: {
system,
commonNixpkgsConfig,
...
}:
nixosSystem {
inherit system;
specialArgs = { inherit lib inputs system; };
modules = [
{
nixpkgs = commonNixpkgsConfig // { hostPlatform = lib.mkDefault system; };
networking.hostName =
mkDefault (removeSuffix ".nix" (baseNameOf path));
}
../. # /default.nix
(import path)
];
};
mapHosts = dir: attrs:
mapModules dir (hostPath:
let
metaPath = "${hostPath}/meta.nix";
meta = import metaPath;
in
mkHost hostPath (attrs // meta)
);
}