summary refs log tree commit diff
path: root/pkgs/lib/default.nix
diff options
context:
space:
mode:
authorNicolas Pierron <nicolas.b.pierron@gmail.com>2009-01-25 00:31:38 +0000
committerNicolas Pierron <nicolas.b.pierron@gmail.com>2009-01-25 00:31:38 +0000
commitdaa6f9c7ef754ab57c2d2f213d2abce35a01586a (patch)
tree53739c959688fb0152c41ee7d1ded8b1ee6997b7 /pkgs/lib/default.nix
parent9581664fb9f564234bcaccbc456c38a4ab74d621 (diff)
downloadnixlib-daa6f9c7ef754ab57c2d2f213d2abce35a01586a.tar
nixlib-daa6f9c7ef754ab57c2d2f213d2abce35a01586a.tar.gz
nixlib-daa6f9c7ef754ab57c2d2f213d2abce35a01586a.tar.bz2
nixlib-daa6f9c7ef754ab57c2d2f213d2abce35a01586a.tar.lz
nixlib-daa6f9c7ef754ab57c2d2f213d2abce35a01586a.tar.xz
nixlib-daa6f9c7ef754ab57c2d2f213d2abce35a01586a.tar.zst
nixlib-daa6f9c7ef754ab57c2d2f213d2abce35a01586a.zip
Add a common merge function. (mergeOneOption)
This merge function allow only one definition for an option.

svn path=/nixpkgs/trunk/; revision=13841
Diffstat (limited to 'pkgs/lib/default.nix')
-rw-r--r--pkgs/lib/default.nix5
1 files changed, 5 insertions, 0 deletions
diff --git a/pkgs/lib/default.nix b/pkgs/lib/default.nix
index 5be1bb2908de..a44fdfa5edd8 100644
--- a/pkgs/lib/default.nix
+++ b/pkgs/lib/default.nix
@@ -500,6 +500,11 @@ rec {
     (x: if builtins ? isString then builtins.isString x else x + "")
     concatStrings;
 
+  mergeOneOption = name: list:
+    if list == [] then abort "This case should never happens."
+    else if tail list != [] then throw "Multiple definitions. Only one is allowed for this option."
+    else head list;
+
 
   # Handle the traversal of option sets.  All sets inside 'opts' are zipped
   # and options declaration and definition are separated.  If no option are