diff options
author | Jan Malakhovski <oxij@oxij.org> | 2019-02-23 00:00:01 +0000 |
---|---|---|
committer | danbst <abcz2.uprola@gmail.com> | 2019-03-08 11:19:38 +0200 |
commit | 4a647dd225571e91d81c1306c69e3473fdd9a8c5 (patch) | |
tree | f4380a4ebd94d043b0435d011fa36a018b6ae84b /pkgs/top-level/config.nix | |
parent | 570aed4b46916551da969c4daeef0322461ac2fe (diff) |
pkgs/top-level: check types of `nixpkgs.config`
This patch simply introduces a plain simple NixOS module and passes
`nixpkgs.config` through it via `evalModules` (with some temporary hackery to
passthru undefined options).
Diffstat (limited to 'pkgs/top-level/config.nix')
-rw-r--r-- | pkgs/top-level/config.nix | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/pkgs/top-level/config.nix b/pkgs/top-level/config.nix new file mode 100644 index 000000000000..62e4bebe4497 --- /dev/null +++ b/pkgs/top-level/config.nix @@ -0,0 +1,51 @@ +# This file defines the structure of the `config` nixpkgs option. + +{ lib, config, ... }: + +with lib; + +let + + mkMeta = args: mkOption (builtins.removeAttrs args [ "feature" ] // { + type = args.type or (types.uniq types.bool); + default = args.default or false; + description = args.description or '' + Whether to ${args.feature} while evaluating nixpkgs. + '' + '' + Changing the default will not cause any rebuilds. + ''; + }); + + mkMassRebuild = args: mkOption (builtins.removeAttrs args [ "feature" ] // { + type = args.type or (types.uniq types.bool); + default = args.default or false; + description = (args.description or '' + Whether to ${args.feature} while building nixpkgs packages. + '') + '' + Changing the default will cause a mass rebuild. + ''; + }); + + options = { + + /* Internal stuff */ + + warnings = mkOption { + type = types.listOf types.str; + default = []; + internal = true; + }; + + /* Config options */ + + doCheckByDefault = mkMassRebuild { + feature = "run <literal>checkPhase</literal> by default"; + }; + + }; + +in { + + inherit options; + +} |