diff options
| author | Robert Hensing <robert@roberthensing.nl> | 2025-03-17 16:17:54 +0000 |
|---|---|---|
| committer | Johannes Kirschbauer <hsjobeki@gmail.com> | 2025-04-03 14:12:07 +0200 |
| commit | b42b9e061b7adb3de93a44ed53b4a7aa83304073 (patch) | |
| tree | 8e1b4dc6516f9d898e153b7c566481b959c7c539 /lib/modules.nix | |
| parent | xee: init at 0.1.5 (#394358) (diff) | |
| download | nixpkgs-b42b9e061b7adb3de93a44ed53b4a7aa83304073.tar.gz | |
lib.modules: init lib.mkDefinition
Free-floating definitions including file location.
Diffstat (limited to 'lib/modules.nix')
| -rw-r--r-- | lib/modules.nix | 22 |
1 files changed, 18 insertions, 4 deletions
diff --git a/lib/modules.nix b/lib/modules.nix index a9ddaf7bda02..3d57c3dd062d 100644 --- a/lib/modules.nix +++ b/lib/modules.nix @@ -1097,10 +1097,16 @@ let # Process mkMerge and mkIf properties. defs' = concatMap ( m: - map (value: { - inherit (m) file; - inherit value; - }) (addErrorContext "while evaluating definitions from `${m.file}':" (dischargeProperties m.value)) + map ( + value: + if value._type or null == "definition" then + value + else + { + inherit (m) file; + inherit value; + } + ) (addErrorContext "while evaluating definitions from `${m.file}':" (dischargeProperties m.value)) ) defs; # Process mkOverride properties. @@ -1171,6 +1177,8 @@ let map (mapAttrs (n: v: mkIf cfg.condition v)) (pushDownProperties cfg.content) else if cfg._type or "" == "override" then 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? else [ cfg ]; @@ -1365,6 +1373,11 @@ let inherit contents; }; + /** + Return a definition with file location information. + */ + mkDefinition = args@{ file, value, ... }: args // { _type = "definition"; }; + mkOverride = priority: content: { _type = "override"; inherit priority content; @@ -2095,6 +2108,7 @@ private mkBefore mkChangedOptionModule mkDefault + mkDefinition mkDerivedConfig mkFixStrictness mkForce |
