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).
This commit is contained in:
@@ -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;
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user