diff options
author | Eelco Dolstra <edolstra@gmail.com> | 2021-09-15 18:31:42 +0200 |
---|---|---|
committer | Eelco Dolstra <edolstra@gmail.com> | 2021-09-15 18:31:42 +0200 |
commit | 027344ce7e88bfcb6f8ed890299f286cc8e4156e (patch) | |
tree | 1a3b0cc880ae2974c77b1028f9301171280a94e0 /src/libexpr/flake/flake.hh | |
parent | 991cc53386cd68038e573f6e0f2da247ae533c07 (diff) |
If we can't write a lock file, pretend the top-level flake is dirty
Alternative to #4639. You can still read flake.lock, but at least in
reproducible workflows like NixOS configurations where you require a
non-dirty tree, evaluation will fail because there is no rev.
Diffstat (limited to 'src/libexpr/flake/flake.hh')
-rw-r--r-- | src/libexpr/flake/flake.hh | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/src/libexpr/flake/flake.hh b/src/libexpr/flake/flake.hh index d46da9d68..524b18af1 100644 --- a/src/libexpr/flake/flake.hh +++ b/src/libexpr/flake/flake.hh @@ -58,9 +58,10 @@ struct ConfigFile /* The contents of a flake.nix file. */ struct Flake { - FlakeRef originalRef; // the original flake specification (by the user) - FlakeRef resolvedRef; // registry references and caching resolved to the specific underlying flake - FlakeRef lockedRef; // the specific local store result of invoking the fetcher + FlakeRef originalRef; // the original flake specification (by the user) + FlakeRef resolvedRef; // registry references and caching resolved to the specific underlying flake + FlakeRef lockedRef; // the specific local store result of invoking the fetcher + bool forceDirty = false; // pretend that 'lockedRef' is dirty std::optional<std::string> description; std::shared_ptr<const fetchers::Tree> sourceInfo; FlakeInputs inputs; @@ -140,6 +141,8 @@ void emitTreeAttrs( EvalState & state, const fetchers::Tree & tree, const fetchers::Input & input, - Value & v, bool emptyRevFallback = false); + Value & v, + bool emptyRevFallback = false, + bool forceDirty = false); } |