3
0
Fork 0
forked from mirrors/nixpkgs
nixpkgs/default.nix

49 lines
1.1 KiB
Nix
Raw Normal View History

let
fromEnv = name: default:
let env = builtins.getEnv name; in
if env == "" then default else env;
configuration = import (fromEnv "NIXOS_CONFIG" /etc/nixos/configuration.nix);
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;
in
{
# Optionally check wether all config values have corresponding
# option declarations.
system = pkgs.checker config.system.build.system
config.environment.checkConfigurationOptions
optionDeclarations config;
nix = config.environment.nix;
nixFallback = pkgs.nixUnstable;
manifests = config.installer.manifests; # exported here because nixos-rebuild uses it
tests = config.tests;
}