diff options
author | matthewcroughan <matt@croughan.sh> | 2021-11-14 23:14:09 +0000 |
---|---|---|
committer | matthewcroughan <matt@croughan.sh> | 2022-05-06 15:42:52 +0100 |
commit | 4d9801a78fff121703c4ea4dcef8b6746973165c (patch) | |
tree | e4a917a0f6e0404e54d2fadf464885ba440355f8 /lib | |
parent | 70b3cbff57169566a22fb8df6a0fd3c3b9b21b6b (diff) |
lib: add inPureEvalMode
This makes a value that is true if builtins does not contain the currentSystem function, but false if it does.
Diffstat (limited to 'lib')
-rw-r--r-- | lib/default.nix | 2 | ||||
-rw-r--r-- | lib/trivial.nix | 7 |
2 files changed, 8 insertions, 1 deletions
diff --git a/lib/default.nix b/lib/default.nix index 22eb5440c2824..e9d54e476d964 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 18616a189c269..902c56a2d0aad 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 |