diff options
author | Eelco Dolstra <edolstra@gmail.com> | 2021-09-15 20:18:23 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-09-15 20:18:23 +0200 |
commit | 1ec4efa6c82fb6d90887c21aa7c7c6f3c644dd65 (patch) | |
tree | bb672e0f7cf93cf6412041a88e2f396b4417042d /src/libexpr/flake/flake.cc | |
parent | c17f3c5e699a8332acc536b985dcd710f3ce0a23 (diff) | |
parent | 027344ce7e88bfcb6f8ed890299f286cc8e4156e (diff) |
Merge pull request #5257 from edolstra/dirty-lock-file
If we can't write a lock file, pretend the top-level flake is dirty
Diffstat (limited to 'src/libexpr/flake/flake.cc')
-rw-r--r-- | src/libexpr/flake/flake.cc | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/libexpr/flake/flake.cc b/src/libexpr/flake/flake.cc index 010d97285..c1a099613 100644 --- a/src/libexpr/flake/flake.cc +++ b/src/libexpr/flake/flake.cc @@ -635,8 +635,10 @@ LockedFlake lockFlake( } } else throw Error("cannot write modified lock file of flake '%s' (use '--no-write-lock-file' to ignore)", topRef); - } else + } else { warn("not writing modified lock file of flake '%s':\n%s", topRef, chomp(diff)); + flake.forceDirty = true; + } } return LockedFlake { .flake = std::move(flake), .lockFile = std::move(newLockFile) }; @@ -659,7 +661,13 @@ void callFlake(EvalState & state, mkString(*vLocks, lockedFlake.lockFile.to_string()); - emitTreeAttrs(state, *lockedFlake.flake.sourceInfo, lockedFlake.flake.lockedRef.input, *vRootSrc); + emitTreeAttrs( + state, + *lockedFlake.flake.sourceInfo, + lockedFlake.flake.lockedRef.input, + *vRootSrc, + false, + lockedFlake.flake.forceDirty); mkString(*vRootSubdir, lockedFlake.flake.lockedRef.subdir); |