summary refs log tree commit diff
path: root/pkgs/lib
diff options
context:
space:
mode:
authorEelco Dolstra <eelco.dolstra@logicblox.com>2009-10-09 19:34:28 +0000
committerEelco Dolstra <eelco.dolstra@logicblox.com>2009-10-09 19:34:28 +0000
commit24b50e92ee1229c4e172bbaaa9a26a7c70b8199b (patch)
treeade93fa2ed3a1d8c68cb9214df9aa79ae91a243e /pkgs/lib
parentd11481e9bf3c90a3c476621052542b2165f31763 (diff)
downloadnixpkgs-24b50e92ee1229c4e172bbaaa9a26a7c70b8199b.tar
nixpkgs-24b50e92ee1229c4e172bbaaa9a26a7c70b8199b.tar.gz
nixpkgs-24b50e92ee1229c4e172bbaaa9a26a7c70b8199b.tar.bz2
nixpkgs-24b50e92ee1229c4e172bbaaa9a26a7c70b8199b.tar.lz
nixpkgs-24b50e92ee1229c4e172bbaaa9a26a7c70b8199b.tar.xz
nixpkgs-24b50e92ee1229c4e172bbaaa9a26a7c70b8199b.tar.zst
nixpkgs-24b50e92ee1229c4e172bbaaa9a26a7c70b8199b.zip
* Revert the last two commits since they break every job in the
  buildfarm ("undefined variable `delayPropertiesTemplate'").

svn path=/nixpkgs/trunk/; revision=17738
Diffstat (limited to 'pkgs/lib')
-rw-r--r--pkgs/lib/modules.nix10
-rw-r--r--pkgs/lib/properties.nix15
-rw-r--r--pkgs/lib/types.nix14
3 files changed, 8 insertions, 31 deletions
diff --git a/pkgs/lib/modules.nix b/pkgs/lib/modules.nix
index 6f894cb9802..aeabf640cc2 100644
--- a/pkgs/lib/modules.nix
+++ b/pkgs/lib/modules.nix
@@ -113,17 +113,9 @@ rec {
         value
     ) module;
 
-
   delayModule = module:
     moduleApply { config = delayProperties; } module;
 
-  evalDefinitions = opt: values:
-    if opt ? type && opt.type.delayProperties then
-      map (delayPropertiesTemplate opt.type.iter opt.name) values
-    else
-      evalProperties values;
-
-
   selectModule = name: m:
     { inherit (m) key;
     } // (
@@ -251,7 +243,7 @@ rec {
                   opt.extraConfigs;
 
             in if hasOpt && isOption opt then
-              let defs = evalDefinitions opt values; in
+              let defs = evalProperties values; in
               lib.addErrorContext "${eol
                 }while evaluating the option '${addName name}'.${eol
                 }${errorSource (modulesOf name)}${eol
diff --git a/pkgs/lib/properties.nix b/pkgs/lib/properties.nix
index ddf3d6cf594..f523e6067b7 100644
--- a/pkgs/lib/properties.nix
+++ b/pkgs/lib/properties.nix
@@ -69,21 +69,18 @@ rec {
   # Move properties from the current attribute set to the attribute
   # contained in this attribute set.  This trigger property handlers called
   # `onDelay' and `onGlobalDelay'.
-  delayPropertiesWithIter = iter: path: attrs:
+  delayProperties = attrs:
     let cleanAttrs = rmProperties attrs; in
     if isProperty attrs then
-      iter (a: v:
+      lib.mapAttrs (a: v:
         lib.addErrorContext "while moving properties on the attribute `${a}'." (
           triggerPropertiesGlobalDelay a (
             triggerPropertiesDelay a (
               copyProperties attrs v
-      )))) path cleanAttrs
+      )))) cleanAttrs
     else
       attrs;
 
-  delayProperties = # implicit attrs argument.
-    delayPropertiesWithIter (f: p: v: lib.mapAttrs f v) "";
-
   # Call onDelay functions.
   triggerPropertiesDelay = name: attrs:
     let
@@ -288,7 +285,7 @@ rec {
   # priorities are kept.  The template argument must reproduce the same
   # attribute set hierarchy to override leaves of the hierarchy.
   isOverride = attrs: (typeOf attrs) == "override";
-  mkOverrideTemplate = priority: template: content: mkProperty {
+  mkOverride = priority: template: content: mkProperty {
     property = {
       _type = "override";
       onDelay = onOverrideDelay;
@@ -298,10 +295,6 @@ rec {
     inherit content;
   };
 
-  # Currently an alias, but sooner or later the template argument should be
-  # removed.
-  mkOverride = mkOverrideTemplate;
-
   # Sugar to override the default value of the option by making a new
   # default value based on the configuration.
   mkDefaultValue = content: mkOverride 1000 {} content;
diff --git a/pkgs/lib/types.nix b/pkgs/lib/types.nix
index 723dd22e2f0..5e0393e9604 100644
--- a/pkgs/lib/types.nix
+++ b/pkgs/lib/types.nix
@@ -19,8 +19,7 @@ rec {
   # iter (iterate on all elements contained in this type)
   # fold (fold all elements contained in this type)
   # hasOptions (boolean: whatever this option contains an option set)
-  # delayProperties (boolean: should properties go through the evaluation of this option)
-  # docPath (path concatenated to the option name contained in the option set)
+  # path (path contatenated to the option name contained contained in the option set)
   isOptionType = attrs: typeOf attrs == "option-type";
   mkOptionType =
     { name
@@ -32,11 +31,10 @@ rec {
     , docPath ? lib.id
     # If the type can contains option sets.
     , hasOptions ? false
-    , delayProperties ? false
     }:
 
     { _type = "option-type";
-      inherit name check merge iter fold docPath hasOptions delayProperties;
+      inherit name check merge iter fold docPath hasOptions;
     };
 
     
@@ -75,7 +73,6 @@ rec {
       check = lib.traceValIfNot isDerivation;
     };
 
-    listOf = types.list;
     list = elemType: mkOptionType {
       name = "list of ${elemType.name}s";
       check = value: lib.traceValIfNot isList value && all elemType.check value;
@@ -84,10 +81,6 @@ rec {
       fold = op: nul: list: lib.fold (e: l: elemType.fold op l e) nul list;
       docPath = path: elemType.docPath (path + ".*");
       inherit (elemType) hasOptions;
-
-      # You cannot define multiple configurations of one entity, therefore
-      # no reason justify to delay properties inside list elements.
-      delayProperties = false;
     };
 
     attrsOf = elemType: mkOptionType {
@@ -98,7 +91,7 @@ rec {
       iter = f: path: set: lib.mapAttrs (name: elemType.iter f (path + "." + name)) set;
       fold = op: nul: set: fold (e: l: elemType.fold op l e) nul (lib.attrValues set);
       docPath = path: elemType.docPath (path + ".<name>");
-      inherit (elemType) hasOptions delayProperties;
+      inherit (elemType) hasOptions;
     };
 
     uniq = elemType: mkOptionType {
@@ -125,7 +118,6 @@ rec {
       merge = lib.id;
       check = x: lib.traceValIfNot builtins.isAttrs x;
       hasOptions = true;
-      delayProperties = true;
     };
 
   };