diff options
author | Shea Levy <shea@shealevy.com> | 2014-05-06 10:31:48 -0400 |
---|---|---|
committer | Nicolas B. Pierron <nicolas.b.pierron@gmail.com> | 2015-03-12 23:42:57 +0100 |
commit | f69ce50529c5108d4dababfd221652ace55264bd (patch) | |
tree | 28b78c3c007a7e362801e13830ffec967951dbb2 | |
parent | 0a0a29fd0bb8329b33a0b2bb25627d3b3d9b7368 (diff) |
Move most extra args out of eval-config.nix
-rw-r--r-- | nixos/lib/eval-config.nix | 20 | ||||
-rw-r--r-- | nixos/modules/misc/extra-arguments.nix | 14 | ||||
-rw-r--r-- | nixos/modules/misc/nixpkgs.nix | 9 | ||||
-rw-r--r-- | nixos/modules/module-list.nix | 1 |
4 files changed, 27 insertions, 17 deletions
diff --git a/nixos/lib/eval-config.nix b/nixos/lib/eval-config.nix index b4b251d2581a..a157ffd56951 100644 --- a/nixos/lib/eval-config.nix +++ b/nixos/lib/eval-config.nix @@ -35,6 +35,7 @@ let key = _file; config = { nixpkgs.system = lib.mkDefault system_; + __internal.args.pkgs = lib.mkIf (pkgs_ != null) (lib.mkForce pkgs_); }; }; @@ -56,23 +57,8 @@ in rec { # the 64-bit package anyway. However, it would be cleaner to respect # nixpkgs.config here. extraArgs = extraArgs_ // { - inherit pkgs modules baseModules; - modulesPath = ../modules; - pkgs_i686 = import ./nixpkgs.nix { system = "i686-linux"; config.allowUnfree = true; }; - utils = import ./utils.nix pkgs; + inherit modules baseModules; }; - pkgs = - if pkgs_ != null - then pkgs_ - else import ./nixpkgs.nix ( - let - system = if nixpkgsOptions.system != "" then nixpkgsOptions.system else system_; - nixpkgsOptions = config.nixpkgs; - in - { - inherit system; - inherit (nixpkgsOptions) config; - }); - + inherit (config.__internal.args) pkgs; } diff --git a/nixos/modules/misc/extra-arguments.nix b/nixos/modules/misc/extra-arguments.nix new file mode 100644 index 000000000000..9943a6192a69 --- /dev/null +++ b/nixos/modules/misc/extra-arguments.nix @@ -0,0 +1,14 @@ +{ lib, pkgs, config, ... }: + +{ + __internal.args = { + modulesPath = ../.; + + pkgs_i686 = import ../../lib/nixpkgs.nix { + system = "i686-linux"; + config.allowUnfree = true; + }; + + utils = import ../../lib/utils.nix pkgs; + }; +} diff --git a/nixos/modules/misc/nixpkgs.nix b/nixos/modules/misc/nixpkgs.nix index cbb42c000039..2b648c1fa4ed 100644 --- a/nixos/modules/misc/nixpkgs.nix +++ b/nixos/modules/misc/nixpkgs.nix @@ -60,6 +60,7 @@ in nixpkgs.system = mkOption { type = types.str; + default = builtins.currentSystem; description = '' Specifies the Nix platform type for which NixOS should be built. If unset, it defaults to the platform type of your host system. @@ -69,4 +70,12 @@ in }; }; + + config = { + __internal.args.pkgs = import ../../lib/nixpkgs.nix { + system = config.nixpkgs.system; + + inherit (config.nixpkgs) config; + }; + }; } diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index 95337168d104..7a324a2bb306 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -44,6 +44,7 @@ ./installer/tools/tools.nix ./misc/assertions.nix ./misc/crashdump.nix + ./misc/extra-arguments.nix ./misc/ids.nix ./misc/lib.nix ./misc/locate.nix |