diff --git a/lib/default.nix b/lib/default.nix index 22eb5440c282..e9d54e476d96 100644 --- a/lib/default.nix +++ b/lib/default.nix @@ -74,7 +74,7 @@ let info showWarnings nixpkgsVersion version isInOldestRelease mod compare splitByAndCompare functionArgs setFunctionArgs isFunction toFunction - toHexString toBaseDigits; + toHexString toBaseDigits inPureEvalMode; inherit (self.fixedPoints) fix fix' converge extends composeExtensions composeManyExtensions makeExtensible makeExtensibleWithCustomName; inherit (self.attrsets) attrByPath hasAttrByPath setAttrByPath diff --git a/lib/trivial.nix b/lib/trivial.nix index 18616a189c26..902c56a2d0aa 100644 --- a/lib/trivial.nix +++ b/lib/trivial.nix @@ -229,6 +229,13 @@ rec { */ inNixShell = builtins.getEnv "IN_NIX_SHELL" != ""; + /* Determine whether the function is being called from inside pure-eval mode + by seeing whether `builtins` contains `currentSystem`. If not, we must be in + pure-eval mode. + + Type: inPureEvalMode :: bool + */ + inPureEvalMode = ! builtins ? currentSystem; ## Integer operations