From e28ea1239fe9413bdb59fd323167b7440b75fc0b Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Mon, 28 Oct 2013 17:37:28 +0100 Subject: Fix evaluation of environment.variables --- lib/modules.nix | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'lib') diff --git a/lib/modules.nix b/lib/modules.nix index 5c5820e92f4..9733929706f 100644 --- a/lib/modules.nix +++ b/lib/modules.nix @@ -143,7 +143,7 @@ rec { let # Process mkOverride properties, adding in the default # value specified in the option declaration (if any). - defsFinal = filterOverrides + defsFinal = filterOverrides' ((if opt ? default then [{ file = head opt.declarations; value = mkOptionDefault opt.default; }] else []) ++ defs); # Type-check the remaining definitions, and merge them if # possible. @@ -229,7 +229,7 @@ rec { Note that "z" has the default priority 100. */ - filterOverrides = defs: + filterOverrides' = defs: let defaultPrio = 100; getPrio = def: if def.value._type or "" == "override" then def.value.priority else defaultPrio; @@ -238,6 +238,9 @@ rec { strip = def: if def.value._type or "" == "override" then def // { value = def.value.content; } else def; in concatMap (def: if getPrio def == highestPrio then [(strip def)] else []) defs; + /* For use in options like environment.variables. */ + filterOverrides = defs: map (def: def.value) (filterOverrides' (map (def: { value = def; }) defs)); + /* Hack for backward compatibility: convert options of type optionSet to configOf. FIXME: remove eventually. */ fixupOptionType = loc: opt: -- cgit 1.4.1