Browse Source

* 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
nsd-state-dir
Eelco Dolstra 13 years ago
parent
commit
5b7f7d2de1
  1. 25
      default.nix
  2. 23
      lib/eval-config.nix

25
default.nix

@ -9,29 +9,14 @@ let
nixpkgs = fromEnv "NIXPKGS" /etc/nixos/nixpkgs;
pkgs = import nixpkgs {system = builtins.currentSystem;};
configComponents = [
configuration
(import ./system/options.nix)
];
# Make a configuration object from which we can retrieve option
# values.
config =
pkgs.lib.fixOptionSets
pkgs.lib.mergeOptionSets
pkgs configComponents;
optionDeclarations =
pkgs.lib.fixOptionSetsFun
pkgs.lib.filterOptionSets
pkgs configComponents
config;
inherit
(import ./lib/eval-config.nix {inherit configuration pkgs;})
config optionDeclarations;
in
{
# Optionally check wether all config values have corresponding
# option declarations.
system = pkgs.checker config.system.build.system

23
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;
}
Loading…
Cancel
Save