diff options
author | Robert Hensing <roberth@users.noreply.github.com> | 2022-03-16 22:58:45 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-03-16 22:58:45 +0100 |
commit | 0395086d0c2bb189f03985486a23cfedbdf8c940 (patch) | |
tree | 621948aafdf70a1adc44b344ab93650bef22cc50 /nixos/modules/services | |
parent | 2f7633c22ee80c72a206421abcd5fc1a208bf946 (diff) | |
parent | 0c766a100e416611807a184ee35a0edbd11b15a4 (diff) | |
download | nixpkgs-0395086d0c2bb189f03985486a23cfedbdf8c940.tar nixpkgs-0395086d0c2bb189f03985486a23cfedbdf8c940.tar.gz nixpkgs-0395086d0c2bb189f03985486a23cfedbdf8c940.tar.bz2 nixpkgs-0395086d0c2bb189f03985486a23cfedbdf8c940.tar.lz nixpkgs-0395086d0c2bb189f03985486a23cfedbdf8c940.tar.xz nixpkgs-0395086d0c2bb189f03985486a23cfedbdf8c940.tar.zst nixpkgs-0395086d0c2bb189f03985486a23cfedbdf8c940.zip |
Merge pull request #162271 from Infinisil/warn-no-type
Throw an error for options without a type
Diffstat (limited to 'nixos/modules/services')
-rw-r--r-- | nixos/modules/services/networking/nsd.nix | 20 | ||||
-rw-r--r-- | nixos/modules/services/networking/unbound.nix | 1 | ||||
-rw-r--r-- | nixos/modules/services/networking/vsftpd.nix | 1 | ||||
-rw-r--r-- | nixos/modules/services/x11/display-managers/default.nix | 18 |
4 files changed, 28 insertions, 12 deletions
diff --git a/nixos/modules/services/networking/nsd.nix b/nixos/modules/services/networking/nsd.nix index cf6c9661dc1..a51fc534534 100644 --- a/nixos/modules/services/networking/nsd.nix +++ b/nixos/modules/services/networking/nsd.nix @@ -194,19 +194,8 @@ let zone.children ); - # fighting infinite recursion - zoneOptions = zoneOptionsRaw // childConfig zoneOptions1 true; - zoneOptions1 = zoneOptionsRaw // childConfig zoneOptions2 false; - zoneOptions2 = zoneOptionsRaw // childConfig zoneOptions3 false; - zoneOptions3 = zoneOptionsRaw // childConfig zoneOptions4 false; - zoneOptions4 = zoneOptionsRaw // childConfig zoneOptions5 false; - zoneOptions5 = zoneOptionsRaw // childConfig zoneOptions6 false; - zoneOptions6 = zoneOptionsRaw // childConfig null false; - - childConfig = x: v: { options.children = { type = types.attrsOf x; visible = v; }; }; - # options are ordered alphanumerically - zoneOptionsRaw = types.submodule { + zoneOptions = types.submodule { options = { allowAXFRFallback = mkOption { @@ -246,6 +235,13 @@ let }; children = mkOption { + # TODO: This relies on the fact that `types.anything` doesn't set any + # values of its own to any defaults, because in the above zoneConfigs', + # values from children override ones from parents, but only if the + # attributes are defined. Because of this, we can't replace the element + # type here with `zoneConfigs`, since that would set all the attributes + # to default values, breaking the parent inheriting function. + type = types.attrsOf types.anything; default = {}; description = '' Children zones inherit all options of their parents. Attributes diff --git a/nixos/modules/services/networking/unbound.nix b/nixos/modules/services/networking/unbound.nix index f6e96349092..87873c8c1e8 100644 --- a/nixos/modules/services/networking/unbound.nix +++ b/nixos/modules/services/networking/unbound.nix @@ -62,6 +62,7 @@ in { }; stateDir = mkOption { + type = types.path; default = "/var/lib/unbound"; description = "Directory holding all state for unbound to run."; }; diff --git a/nixos/modules/services/networking/vsftpd.nix b/nixos/modules/services/networking/vsftpd.nix index 710c2d9ca17..d205302051e 100644 --- a/nixos/modules/services/networking/vsftpd.nix +++ b/nixos/modules/services/networking/vsftpd.nix @@ -153,6 +153,7 @@ in userlist = mkOption { default = []; + type = types.listOf types.str; description = "See <option>userlistFile</option>."; }; diff --git a/nixos/modules/services/x11/display-managers/default.nix b/nixos/modules/services/x11/display-managers/default.nix index 92b3af8527f..03fe68fe505 100644 --- a/nixos/modules/services/x11/display-managers/default.nix +++ b/nixos/modules/services/x11/display-managers/default.nix @@ -219,6 +219,24 @@ in session = mkOption { default = []; + type = with types; listOf (submodule ({ ... }: { + options = { + manage = mkOption { + description = "Whether this is a desktop or a window manager"; + type = enum [ "desktop" "window" ]; + }; + + name = mkOption { + description = "Name of this session"; + type = str; + }; + + start = mkOption { + description = "Commands to run to start this session"; + type = lines; + }; + }; + })); example = literalExpression '' [ { manage = "desktop"; |