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.
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
{ pkgs, options, version, revision, extraSources ? [] }:
|
||||
{ pkgs, options, internalModule, version, revision, extraSources ? [] }:
|
||||
|
||||
with pkgs;
|
||||
with pkgs.lib;
|
||||
@@ -6,8 +6,10 @@ with pkgs.lib;
|
||||
let
|
||||
|
||||
# Remove invisible and internal options.
|
||||
optionsList = filter (opt: opt.visible && !opt.internal) (optionAttrSetToDocList options);
|
||||
optionsList = filter (opt: opt.visible && !opt.internal) (optionAttrSetToDocList internalModule options);
|
||||
|
||||
# INFO: Please add 'defaultText' or 'literalExample' to the option
|
||||
# definition to avoid this substitution!
|
||||
# Replace functions by the string <function>
|
||||
substFunction = x:
|
||||
if builtins.isAttrs x then mapAttrs (name: substFunction) x
|
||||
|
||||
Reference in New Issue
Block a user