mirror of
https://github.com/nix-community/home-manager
synced 2024-11-24 03:59:46 +01:00
29 lines
709 B
Nix
29 lines
709 B
Nix
|
{ lib }:
|
||
|
|
||
|
with lib;
|
||
|
|
||
|
{
|
||
|
|
||
|
selectorFunction = mkOptionType {
|
||
|
name = "selectorFunction";
|
||
|
description =
|
||
|
"Function that takes an attribute set and returns a list"
|
||
|
+ " containing a selection of the values of the input set";
|
||
|
check = isFunction;
|
||
|
merge = _loc: defs:
|
||
|
as: concatMap (select: select as) (getValues defs);
|
||
|
};
|
||
|
|
||
|
overlayFunction = mkOptionType {
|
||
|
name = "overlayFunction";
|
||
|
description =
|
||
|
"An overlay function, takes self and super and returns"
|
||
|
+ " an attribute set overriding the desired attributes.";
|
||
|
check = isFunction;
|
||
|
merge = _loc: defs:
|
||
|
self: super:
|
||
|
foldl' (res: def: mergeAttrs res (def.value self super)) {} defs;
|
||
|
};
|
||
|
|
||
|
}
|