nixpkgs-suyu/lib/eval-config.nix
Eelco Dolstra 02d26fc77d * Make eval-config.nix a bit more general to make it easier to build
other kinds of configurations (like the installation CD).

svn path=/nixos/branches/modular-nixos/; revision=15864
2009-06-05 13:19:39 +00:00

44 lines
1.1 KiB
Nix

# From an end-user configuration file (`configuration'), build a NixOS
# configuration object (`config') from which we can retrieve option
# values.
{ configuration
, system ? builtins.currentSystem
, nixpkgs ? import ./from-env.nix "NIXPKGS" /etc/nixos/nixpkgs
, pkgs ? import nixpkgs {inherit system;}
}:
rec {
inherit nixpkgs pkgs;
configComponents = [
configuration
{
require = import ../modules/module-list.nix;
environment.checkConfigurationOptions = pkgs.lib.mkOption {
default = true;
example = false;
description = ''
Whether to check the validity of the entire configuration.
'';
};
}
];
config_ =
pkgs.lib.fixOptionSets
pkgs.lib.mergeOptionSets
pkgs configComponents;
optionDeclarations =
pkgs.lib.fixOptionSetsFun
pkgs.lib.filterOptionSets
pkgs configComponents
config_;
# Optionally check wether all config values have corresponding
# option declarations.
config = pkgs.checker config_
config_.environment.checkConfigurationOptions
optionDeclarations config_;
}