Files
nixconfig/modules/shared/syscfg/default.nix
2026-05-30 17:48:18 +02:00

34 lines
1.1 KiB
Nix

{ inputs, lib, ... }:
let
systemsDir = ../../../systems;
systemNames = lib.attrNames (lib.filterAttrs
(name: type: type == "directory" && builtins.pathExists (systemsDir + "/${name}/cfg.nix"))
(builtins.readDir systemsDir));
in with lib; {
options.usercfg = import ./user.nix {inherit lib;};
options.syscfg = {
hostname = mkOption { type = types.str; };
type = mkOption {
type = types.enum [ "nixos" "macos" "home" ];
default = "nixos";
};
defaultUser = mkOption { type = types.str; };
make = import ./make.nix {inherit lib;};
net = import ./net.nix {inherit lib;};
users = mkOption {
type = types.listOf (types.submodule { options = import ./user.nix {inherit lib;}; });
default = [ ];
};
peers = mkOption {
default = map (name: import (systemsDir + "/${name}/cfg.nix")) systemNames;
};
server = mkOption {
type = types.oneOf [ types.bool (types.submodule { options = import ./server.nix {inherit lib;}; }) ];
default = false;
};
extra = import ./extra.nix {inherit lib;};
};
}