No change in behavior. By factoring this out, we can pass an extra overlay in addition to the impure ones in callers.
63 lines
1.8 KiB
Nix
63 lines
1.8 KiB
Nix
/*
|
|
Impure default args for `pkgs/top-level/default.nix`. See that file
|
|
for the meaning of each argument.
|
|
*/
|
|
|
|
let
|
|
|
|
homeDir = builtins.getEnv "HOME";
|
|
|
|
in
|
|
|
|
{
|
|
# We put legacy `system` into `localSystem`, if `localSystem` was not passed.
|
|
# If neither is passed, assume we are building packages on the current
|
|
# (build, in GNU Autotools parlance) platform.
|
|
localSystem ? {
|
|
system = args.system or builtins.currentSystem;
|
|
},
|
|
|
|
# These are needed only because nix's `--arg` command-line logic doesn't work
|
|
# with unnamed parameters allowed by ...
|
|
system ? localSystem.system,
|
|
crossSystem ? localSystem,
|
|
|
|
# Fallback: The contents of the configuration file found at $NIXPKGS_CONFIG or
|
|
# $HOME/.config/nixpkgs/config.nix.
|
|
config ?
|
|
let
|
|
configFile = builtins.getEnv "NIXPKGS_CONFIG";
|
|
configFile2 = homeDir + "/.config/nixpkgs/config.nix";
|
|
configFile3 = homeDir + "/.nixpkgs/config.nix"; # obsolete
|
|
in
|
|
if configFile != "" && builtins.pathExists configFile then
|
|
import configFile
|
|
else if homeDir != "" && builtins.pathExists configFile2 then
|
|
import configFile2
|
|
else if homeDir != "" && builtins.pathExists configFile3 then
|
|
import configFile3
|
|
else
|
|
{ },
|
|
|
|
# Overlays are used to extend Nixpkgs collection with additional
|
|
# collections of packages. These collection of packages are part of the
|
|
# fix-point made by Nixpkgs.
|
|
overlays ? import ./impure-overlays.nix,
|
|
|
|
crossOverlays ? [ ],
|
|
|
|
...
|
|
}@args:
|
|
|
|
# If `localSystem` was explicitly passed, legacy `system` should
|
|
# not be passed, and vice-versa.
|
|
assert args ? localSystem -> !(args ? system);
|
|
assert args ? system -> !(args ? localSystem);
|
|
|
|
import ./. (
|
|
builtins.removeAttrs args [ "system" ]
|
|
// {
|
|
inherit config overlays localSystem;
|
|
}
|
|
)
|