mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-06-14 05:29:20 +03:00
lib.modules: init lib.mkDefinition
Free-floating definitions including file location.
This commit is contained in:
parent
4ad504735a
commit
b42b9e061b
2 changed files with 19 additions and 4 deletions
|
@ -446,6 +446,7 @@ let
|
||||||
fixupOptionType
|
fixupOptionType
|
||||||
mkIf
|
mkIf
|
||||||
mkAssert
|
mkAssert
|
||||||
|
mkDefinition
|
||||||
mkMerge
|
mkMerge
|
||||||
mkOverride
|
mkOverride
|
||||||
mkOptionDefault
|
mkOptionDefault
|
||||||
|
|
|
@ -1097,10 +1097,16 @@ let
|
||||||
# Process mkMerge and mkIf properties.
|
# Process mkMerge and mkIf properties.
|
||||||
defs' = concatMap (
|
defs' = concatMap (
|
||||||
m:
|
m:
|
||||||
map (value: {
|
map (
|
||||||
|
value:
|
||||||
|
if value._type or null == "definition" then
|
||||||
|
value
|
||||||
|
else
|
||||||
|
{
|
||||||
inherit (m) file;
|
inherit (m) file;
|
||||||
inherit value;
|
inherit value;
|
||||||
}) (addErrorContext "while evaluating definitions from `${m.file}':" (dischargeProperties m.value))
|
}
|
||||||
|
) (addErrorContext "while evaluating definitions from `${m.file}':" (dischargeProperties m.value))
|
||||||
) defs;
|
) defs;
|
||||||
|
|
||||||
# Process mkOverride properties.
|
# Process mkOverride properties.
|
||||||
|
@ -1171,6 +1177,8 @@ let
|
||||||
map (mapAttrs (n: v: mkIf cfg.condition v)) (pushDownProperties cfg.content)
|
map (mapAttrs (n: v: mkIf cfg.condition v)) (pushDownProperties cfg.content)
|
||||||
else if cfg._type or "" == "override" then
|
else if cfg._type or "" == "override" then
|
||||||
map (mapAttrs (n: v: mkOverride cfg.priority v)) (pushDownProperties cfg.content)
|
map (mapAttrs (n: v: mkOverride cfg.priority v)) (pushDownProperties cfg.content)
|
||||||
|
# else if cfg._type or "" == "definition" then
|
||||||
|
# map (mapAttrs (n: v: mkDefinition v)) (pushDownProperties cfg.content)
|
||||||
# FIXME: handle mkOrder?
|
# FIXME: handle mkOrder?
|
||||||
else
|
else
|
||||||
[ cfg ];
|
[ cfg ];
|
||||||
|
@ -1365,6 +1373,11 @@ let
|
||||||
inherit contents;
|
inherit contents;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
Return a definition with file location information.
|
||||||
|
*/
|
||||||
|
mkDefinition = args@{ file, value, ... }: args // { _type = "definition"; };
|
||||||
|
|
||||||
mkOverride = priority: content: {
|
mkOverride = priority: content: {
|
||||||
_type = "override";
|
_type = "override";
|
||||||
inherit priority content;
|
inherit priority content;
|
||||||
|
@ -2095,6 +2108,7 @@ private
|
||||||
mkBefore
|
mkBefore
|
||||||
mkChangedOptionModule
|
mkChangedOptionModule
|
||||||
mkDefault
|
mkDefault
|
||||||
|
mkDefinition
|
||||||
mkDerivedConfig
|
mkDerivedConfig
|
||||||
mkFixStrictness
|
mkFixStrictness
|
||||||
mkForce
|
mkForce
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue