soraefir 448fe0c18b
Some checks failed
Nix Build / build-nixos (push) Failing after 32s
Server & Podman
2024-04-15 18:34:14 +02:00

92 lines
2.0 KiB
Nix

{ inputs, lib, ... }:
let
userOpt = with lib; {
username = mkOption { type = types.str; };
wm = mkOption {
type = types.enum [ "Wayland" "X11" "-" ];
default = "-";
};
git = {
username = mkOption { type = types.str; };
email = mkOption { type = types.str; };
key = mkOption { type = types.str; };
};
};
netOpt = with lib; {
wlp = {
enable = mkOption {
type = types.bool;
default = false;
};
nif = mkOption {
type = types.str;
default = "";
};
};
wg = {
enable = mkOption {
type = types.bool;
default = false;
};
ip4 = mkOption {
type = types.str;
default = "";
};
ip6 = mkOption {
type = types.str;
default = "";
};
};
};
makeOpt = with lib; {
cli = mkOption {
type = types.bool;
default = true;
};
gui = mkOption {
type = types.bool;
default = false;
};
virt = mkOption {
type = types.bool;
default = true;
};
power = mkOption {
type = types.bool;
default = false;
};
game = mkOption {
type = types.bool;
default = false;
};
develop = mkOption {
type = types.bool;
default = false;
};
};
serverOpt = with lib; {
hostDomain = mkOption {type = types.str;};
mailDomain = mkOption {type = types.str;};
mailServer = mkOption {type = types.str;};
dbHost = mkOption {type = types.str; default = "localhost";};
dbPort = mkOption {type = types.str; default = "3306";};
configPath = mkOption {type=types.str; default= "/media/config";};
dataPath = mkOption {type=types.str; default= "/media/data";};
};
in with lib; {
options.usercfg = userOpt;
options.syscfg = {
hostname = mkOption { type = types.str; };
defaultUser = mkOption { type = types.str; };
make = makeOpt;
net = netOpt;
users = mkOption {
type = types.listOf (types.submodule { options = userOpt; });
default = [ ];
};
};
}