From 14c0ae4055d4f60d57b8f3ae9b65746dc35afc0a Mon Sep 17 00:00:00 2001
From: Eelco Dolstra <eelco.dolstra@logicblox.com>
Date: Sun, 20 May 2007 20:24:43 +0000
Subject: [PATCH] * Move the `optional' function to lib.

svn path=/nixpkgs/trunk/; revision=8720
---
 pkgs/lib/default.nix            | 8 +++++++-
 pkgs/top-level/all-packages.nix | 8 +++-----
 2 files changed, 10 insertions(+), 6 deletions(-)

diff --git a/pkgs/lib/default.nix b/pkgs/lib/default.nix
index 08e71b66bce..b7087a57aba 100644
--- a/pkgs/lib/default.nix
+++ b/pkgs/lib/default.nix
@@ -107,5 +107,11 @@ rec {
     );
     in src: builtins.filterSource filter src;
 
-          
+
+  # Return a singleton list or an empty list, depending on a boolean
+  # value.  Useful when building lists with optional elements
+  # (e.g. `++ optional (system == "i686-linux") flashplayer').
+  optional = cond: elem: if cond then [elem] else [];
+
+    
 }
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 9e2fae64961..06969214e7d 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -166,8 +166,6 @@ rec {
     meta = (if drv ? meta then drv.meta else {}) // {priority = "10";};
   };
 
-  optional = cond: elem: if cond then [elem] else [];
-  
 
   ### STANDARD ENVIRONMENT
 
@@ -2968,10 +2966,10 @@ rec {
     plugins = [
       MPlayerPlugin
     ]
-    ++ optional (system == "i686-linux") flashplayer
+    ++ lib.optional (system == "i686-linux") flashplayer
     # RealPlayer is disabled by default for legal reasons.
-    ++ optional (system != "i686-linux" && getConfig ["firefox" "enableRealPlayer"] false) RealPlayer
-    ++ optional (supportsJDK && jrePlugin ? mozillaPlugin) jrePlugin;
+    ++ lib.optional (system != "i686-linux" && getConfig ["firefox" "enableRealPlayer"] false) RealPlayer
+    ++ lib.optional (supportsJDK && jrePlugin ? mozillaPlugin) jrePlugin;
   };
 
   xara = import ../applications/graphics/xara {