summaryrefslogtreecommitdiffstats
path: root/lib/types.nix
diff options
context:
space:
mode:
authorSilvan Mosberger <contact@infinisil.com>2020-09-04 13:39:27 +0200
committerSilvan Mosberger <contact@infinisil.com>2020-09-07 13:17:14 +0200
commit1d4656225d4f1e93ea9801c72eb0b1b0bffa245d (patch)
tree84247b31c8aceb1cae02fd6286610f28abdf0952 /lib/types.nix
parentf3bf0f173ec9b302c2613dfb6d76dc49b889f321 (diff)
lib/types: Allow types to emit a deprecation warning
Previously the only way to deprecate a type was using theType = lib.warn "deprecated" (mkOptionType ...) This caused the warning to be emitted when the type was evaluated, but the error didn't include which option actually used that type. With this commit, types can specify a deprecationMessage, which when non-null, is printed along with the option that uses the type
Diffstat (limited to 'lib/types.nix')
-rw-r--r--lib/types.nix5
1 files changed, 4 insertions, 1 deletions
diff --git a/lib/types.nix b/lib/types.nix
index 17e7a939fe3d..f999805e1a98 100644
--- a/lib/types.nix
+++ b/lib/types.nix
@@ -91,9 +91,12 @@ rec {
# combinable with the binOp binary operation.
# binOp: binary operation that merge two payloads of the same type.
functor ? defaultFunctor name
+ , # The deprecation message to display when this type is used by an option
+ # If null, the type isn't deprecated
+ deprecationMessage ? null
}:
{ _type = "option-type";
- inherit name check merge emptyValue getSubOptions getSubModules substSubModules typeMerge functor;
+ inherit name check merge emptyValue getSubOptions getSubModules substSubModules typeMerge functor deprecationMessage;
description = if description == null then name else description;
};