summaryrefslogtreecommitdiffstats
path: root/pkgs/top-level/config.nix
diff options
context:
space:
mode:
authorJan Malakhovski <oxij@oxij.org>2019-02-23 00:00:01 +0000
committerdanbst <abcz2.uprola@gmail.com>2019-03-08 11:19:38 +0200
commit4a647dd225571e91d81c1306c69e3473fdd9a8c5 (patch)
treef4380a4ebd94d043b0435d011fa36a018b6ae84b /pkgs/top-level/config.nix
parent570aed4b46916551da969c4daeef0322461ac2fe (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.nix51
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;
+
+}