about summary refs log tree commit diff
path: root/pkgs/top-level/default.nix
diff options
context:
space:
mode:
authorJohn Ericson <Ericson2314@Yahoo.com>2016-06-22 01:33:53 -0700
committerJohn Ericson <Ericson2314@Yahoo.com>2016-07-09 13:06:19 -0700
commit29de9cedadb6dc67433776a58f50642f650dca5a (patch)
tree603ba89f0ebc9734d0582c662bb3608e3d7605a1 /pkgs/top-level/default.nix
parent125ffff089b6bd360c82cf986d8cc9b17fc2e8ac (diff)
Make default config an argument default instead of using null check
Thanks @Mathnerd314 for this idea
Diffstat (limited to 'pkgs/top-level/default.nix')
-rw-r--r--pkgs/top-level/default.nix44
1 files changed, 19 insertions, 25 deletions
diff --git a/pkgs/top-level/default.nix b/pkgs/top-level/default.nix
index cff8671b65d57..8913dc1ef59e8 100644
--- a/pkgs/top-level/default.nix
+++ b/pkgs/top-level/default.nix
@@ -22,43 +22,37 @@
 , # Allow a configuration attribute set to be passed in as an
   # argument.  Otherwise, it's read from $NIXPKGS_CONFIG or
   # ~/.nixpkgs/config.nix.
-  config ? null
+  #
+  # [For NixOS (nixos-rebuild), use nixpkgs.config option to set.]
+  config ? let
+      inherit (builtins) getEnv pathExists;
+
+      configFile = getEnv "NIXPKGS_CONFIG";
+      homeDir = getEnv "HOME";
+      configFile2 = homeDir + "/.nixpkgs/config.nix";
+    in
+      if configFile != "" && pathExists configFile then import configFile
+      else if homeDir != "" && pathExists configFile2 then import configFile2
+      else {}
 
 , crossSystem ? null
 , platform ? null
 }:
 
 
-let config_ = config; platform_ = platform; in # rename the function arguments
+let configExpr = config; platform_ = platform; in # rename the function arguments
 
 let
 
   lib = import ../../lib;
 
-  # The contents of the configuration file found at $NIXPKGS_CONFIG or
-  # $HOME/.nixpkgs/config.nix.
-  # for NIXOS (nixos-rebuild): use nixpkgs.config option
+  # Allow both:
+  # { /* the config */ } and
+  # { pkgs, ... } : { /* the config */ }
   config =
-    let
-      inherit (builtins) getEnv pathExists;
-
-      configFile = getEnv "NIXPKGS_CONFIG";
-      homeDir = getEnv "HOME";
-      configFile2 = homeDir + "/.nixpkgs/config.nix";
-
-      configExpr =
-        if config_ != null then config_
-        else if configFile != "" && pathExists configFile then import configFile
-        else if homeDir != "" && pathExists configFile2 then import configFile2
-        else {};
-
-    in
-      # allow both:
-      # { /* the config */ } and
-      # { pkgs, ... } : { /* the config */ }
-      if builtins.isFunction configExpr
-        then configExpr { inherit pkgs; }
-        else configExpr;
+    if builtins.isFunction configExpr
+    then configExpr { inherit pkgs; }
+    else configExpr;
 
   # Allow setting the platform in the config file. Otherwise, let's use a reasonable default (pc)