evalModules: Add internal option for the check argument

This commit is contained in:
Shea Levy 2014-05-05 16:23:57 -04:00 committed by Nicolas B. Pierron
parent e4a06f35b1
commit e3eff53037
5 changed files with 14 additions and 19 deletions

View file

@ -25,6 +25,16 @@ rec {
internal = true;
};
__internal.check = mkOption {
description = "Whether to check whether all option definitions have matching declarations.";
type = types.uniq types.bool;
internal = true;
default = check;
};
};
config = {
@ -45,7 +55,7 @@ rec {
if isOption v then v.value
else yieldConfig (prefix ++ [n]) v) set) ["_definedNames"];
in
if check && set ? _definedNames then
if options.__internal.check.value && set ? _definedNames then
fold (m: res:
fold (name: res:
if set ? ${name} then res else throw "The option `${showOption (prefix ++ [name])}' defined in `${m.file}' does not exist.")

View file

@ -31,10 +31,9 @@ in rec {
# Merge the option definitions in all modules, forming the full
# system configuration.
inherit (lib.evalModules {
inherit prefix;
inherit prefix check;
modules = modules ++ extraModules ++ baseModules ++ [ pkgsModule ];
args = extraArgs;
check = check && options.environment.checkConfigurationOptions.value;
}) config options;
# These are the extra arguments passed to every module. In

View file

@ -1,15 +0,0 @@
{ lib, ... }:
with lib;
{
options = {
environment.checkConfigurationOptions = mkOption {
type = types.bool;
default = true;
description = ''
Whether to check the validity of the entire configuration.
'';
};
};
}

View file

@ -43,7 +43,6 @@
./installer/tools/nixos-checkout.nix
./installer/tools/tools.nix
./misc/assertions.nix
./misc/check-config.nix
./misc/crashdump.nix
./misc/ids.nix
./misc/lib.nix

View file

@ -136,6 +136,8 @@ in zipModules ([]
++ obsolete [ "services" "mysql55" ] [ "services" "mysql" ]
++ obsolete [ "environment" "checkConfigurationOptions" ] [ "__internal" "check" ]
# Options that are obsolete and have no replacement.
++ obsolete' [ "boot" "loader" "grub" "bootDevice" ]
++ obsolete' [ "boot" "initrd" "luks" "enable" ]