diff options
author | Silvan Mosberger <contact@infinisil.com> | 2020-09-04 13:39:27 +0200 |
---|---|---|
committer | Silvan Mosberger <contact@infinisil.com> | 2020-09-07 13:17:14 +0200 |
commit | 1d4656225d4f1e93ea9801c72eb0b1b0bffa245d (patch) | |
tree | 84247b31c8aceb1cae02fd6286610f28abdf0952 /lib/types.nix | |
parent | f3bf0f173ec9b302c2613dfb6d76dc49b889f321 (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.nix | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/lib/types.nix b/lib/types.nix index 17e7a939fe3d3..f999805e1a983 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; }; |