diff options
author | Thomas Strobel <ts468@cam.ac.uk> | 2016-02-20 01:47:01 +0100 |
---|---|---|
committer | Thomas Strobel <ts468@cam.ac.uk> | 2016-02-29 01:09:00 +0100 |
commit | cad8957eabcbf73062226d28366fd446c15c8737 (patch) | |
tree | 0299e96391c14f612e7bd1cf3b2274198425fd61 /nixos/lib/eval-config.nix | |
parent | c483224c82c8e94324c03576e64c5dfbf16bd2f8 (diff) | |
download | nixpkgs-cad8957eabcbf73062226d28366fd446c15c8737.tar nixpkgs-cad8957eabcbf73062226d28366fd446c15c8737.tar.gz nixpkgs-cad8957eabcbf73062226d28366fd446c15c8737.tar.bz2 nixpkgs-cad8957eabcbf73062226d28366fd446c15c8737.tar.lz nixpkgs-cad8957eabcbf73062226d28366fd446c15c8737.tar.xz nixpkgs-cad8957eabcbf73062226d28366fd446c15c8737.tar.zst nixpkgs-cad8957eabcbf73062226d28366fd446c15c8737.zip |
Add the tool "nixos-typecheck" that can check an option declaration to:
- Enforce that an option declaration has a "defaultText" if and only if the type of the option derives from "package", "packageSet" or "nixpkgsConfig" and if a "default" attribute is defined. - Enforce that the value of the "example" attribute is wrapped with "literalExample" if the type of the option derives from "package", "packageSet" or "nixpkgsConfig". - Warn if a "defaultText" is defined in an option declaration if the type of the option does not derive from "package", "packageSet" or "nixpkgsConfig". - Warn if no "type" is defined in an option declaration.
Diffstat (limited to 'nixos/lib/eval-config.nix')
-rw-r--r-- | nixos/lib/eval-config.nix | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/nixos/lib/eval-config.nix b/nixos/lib/eval-config.nix index a87b285c5b7..79890e0add7 100644 --- a/nixos/lib/eval-config.nix +++ b/nixos/lib/eval-config.nix @@ -20,8 +20,13 @@ , # !!! See comment about args in lib/modules.nix specialArgs ? {} , modules +, # Pass through a configuration of the internal modules declared + # in lib/modules.nix. + _module ? {} +, # !!! See comment about typeInference in lib/modules.nix + typeInference ? null , # !!! See comment about check in lib/modules.nix - check ? true + check ? null , prefix ? [] , lib ? import ../../lib }: @@ -41,13 +46,17 @@ let }; }; + internalModule = { _module = (_module + // (if isNull check then {} else { inherit check; }) + // (if isNull typeInference then {} else { inherit typeInference; })); }; + in rec { # Merge the option definitions in all modules, forming the full # system configuration. inherit (lib.evalModules { - inherit prefix check; - modules = modules ++ extraModules ++ baseModules ++ [ pkgsModule ]; + inherit prefix; + modules = modules ++ extraModules ++ baseModules ++ [ pkgsModule ] ++ [ internalModule ]; args = extraArgs; specialArgs = { modulesPath = ../modules; } // specialArgs; }) config options; |