summary refs log tree commit diff
path: root/pkgs/lib/modules.nix
diff options
context:
space:
mode:
authorNicolas Pierron <nicolas.b.pierron@gmail.com>2009-10-09 23:03:24 +0000
committerNicolas Pierron <nicolas.b.pierron@gmail.com>2009-10-09 23:03:24 +0000
commit926f20a1eecab8e40e669018819c43503ff4e4c0 (patch)
tree8e66904f467ddece46d414c80ef372acdaf96df7 /pkgs/lib/modules.nix
parent037a777b7d29d7c748b3cb3746ad67f31763e339 (diff)
downloadnixpkgs-926f20a1eecab8e40e669018819c43503ff4e4c0.tar
nixpkgs-926f20a1eecab8e40e669018819c43503ff4e4c0.tar.gz
nixpkgs-926f20a1eecab8e40e669018819c43503ff4e4c0.tar.bz2
nixpkgs-926f20a1eecab8e40e669018819c43503ff4e4c0.tar.lz
nixpkgs-926f20a1eecab8e40e669018819c43503ff4e4c0.tar.xz
nixpkgs-926f20a1eecab8e40e669018819c43503ff4e4c0.tar.zst
nixpkgs-926f20a1eecab8e40e669018819c43503ff4e4c0.zip
Revert "* Revert the last two commits ..." (rev 17738) & Fix.
svn path=/nixpkgs/trunk/; revision=17740
Diffstat (limited to 'pkgs/lib/modules.nix')
-rw-r--r--pkgs/lib/modules.nix10
1 files changed, 9 insertions, 1 deletions
diff --git a/pkgs/lib/modules.nix b/pkgs/lib/modules.nix
index aeabf640cc2..6626812076e 100644
--- a/pkgs/lib/modules.nix
+++ b/pkgs/lib/modules.nix
@@ -113,9 +113,17 @@ rec {
         value
     ) module;
 
+
   delayModule = module:
     moduleApply { config = delayProperties; } module;
 
+  evalDefinitions = opt: values:
+    if opt ? type && opt.type.delayProperties then
+      map (delayPropertiesWithIter opt.type.iter opt.name) values
+    else
+      evalProperties values;
+
+
   selectModule = name: m:
     { inherit (m) key;
     } // (
@@ -243,7 +251,7 @@ rec {
                   opt.extraConfigs;
 
             in if hasOpt && isOption opt then
-              let defs = evalProperties values; in
+              let defs = evalDefinitions opt values; in
               lib.addErrorContext "${eol
                 }while evaluating the option '${addName name}'.${eol
                 }${errorSource (modulesOf name)}${eol