summary refs log tree commit diff
path: root/lib/eval-config.nix
diff options
context:
space:
mode:
authorEelco Dolstra <eelco.dolstra@logicblox.com>2009-05-27 09:16:56 +0000
committerEelco Dolstra <eelco.dolstra@logicblox.com>2009-05-27 09:16:56 +0000
commit5b7f7d2de1d2bc81d65b209a3d759d601528606d (patch)
treeb551aec03be25537f2cf72ac924a0abc9498f416 /lib/eval-config.nix
parentcfa218a26b8ce073cf93f1f5f98f1a123c985803 (diff)
downloadnixpkgs-5b7f7d2de1d2bc81d65b209a3d759d601528606d.tar
nixpkgs-5b7f7d2de1d2bc81d65b209a3d759d601528606d.tar.gz
nixpkgs-5b7f7d2de1d2bc81d65b209a3d759d601528606d.tar.bz2
nixpkgs-5b7f7d2de1d2bc81d65b209a3d759d601528606d.tar.lz
nixpkgs-5b7f7d2de1d2bc81d65b209a3d759d601528606d.tar.xz
nixpkgs-5b7f7d2de1d2bc81d65b209a3d759d601528606d.tar.zst
nixpkgs-5b7f7d2de1d2bc81d65b209a3d759d601528606d.zip
* Move the config evaluation into a separate expression so that it can
  be reused, e.g. for building the CD/DVD.

svn path=/nixos/branches/modular-nixos/; revision=15744
Diffstat (limited to 'lib/eval-config.nix')
-rw-r--r--lib/eval-config.nix23
1 files changed, 23 insertions, 0 deletions
diff --git a/lib/eval-config.nix b/lib/eval-config.nix
new file mode 100644
index 00000000000..e1cf7ac3cf6
--- /dev/null
+++ b/lib/eval-config.nix
@@ -0,0 +1,23 @@
+# From an end-user configuration file (`configuration'), build a NixOS
+# configuration object (`config') from which we can retrieve option
+# values.
+
+{configuration, pkgs}:
+
+rec {
+  configComponents = [
+    configuration
+    (import ../system/options.nix)
+  ];
+
+  config =
+    pkgs.lib.fixOptionSets
+      pkgs.lib.mergeOptionSets
+      pkgs configComponents;
+
+  optionDeclarations =
+    pkgs.lib.fixOptionSetsFun
+      pkgs.lib.filterOptionSets
+      pkgs configComponents
+      config;
+}