lib/module: add mkChangedOptionModule function
This commit is contained in:
parent
13eefc3a31
commit
26ea947d33
@ -598,6 +598,32 @@ rec {
|
|||||||
(mergeFn config)));
|
(mergeFn config)));
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/* Single "from" version of mkMergedOptionModule.
|
||||||
|
Return a module that causes a warning to be shown if the "from" option is
|
||||||
|
defined; the defined value can be used in the "mergeFn" to set the "to"
|
||||||
|
value.
|
||||||
|
This function can be used to change an option into another that has a
|
||||||
|
different type.
|
||||||
|
|
||||||
|
"mergeFn" takes the module "config" as a parameter and must return a value of
|
||||||
|
"to" option type.
|
||||||
|
|
||||||
|
mkChangedOptionModule [ "a" "b" "c" ] [ "x" "y" "z" ]
|
||||||
|
(config:
|
||||||
|
let value = getAttrFromPath [ "a" "b" "c" ] config;
|
||||||
|
in
|
||||||
|
if value > 100 then "high"
|
||||||
|
else "normal")
|
||||||
|
|
||||||
|
- options.a.b.c is a removed int option
|
||||||
|
- options.x.y.z is a new str option that supersedes a.b.c
|
||||||
|
|
||||||
|
This show a warning if a.b.c is set, and set the value of x.y.z to the
|
||||||
|
result of the change function
|
||||||
|
*/
|
||||||
|
mkChangedOptionModule = from: to: changeFn:
|
||||||
|
mkMergedOptionModule [ from ] to changeFn;
|
||||||
|
|
||||||
/* Like ‘mkRenamedOptionModule’, but doesn't show a warning. */
|
/* Like ‘mkRenamedOptionModule’, but doesn't show a warning. */
|
||||||
mkAliasOptionModule = from: to: doRename {
|
mkAliasOptionModule = from: to: doRename {
|
||||||
inherit from to;
|
inherit from to;
|
||||||
|
Loading…
Reference in New Issue
Block a user