aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/manual/src/release-notes/rl-next.md4
-rw-r--r--src/libexpr/flake/flake.cc20
-rw-r--r--src/libstore/globals.hh7
3 files changed, 27 insertions, 4 deletions
diff --git a/doc/manual/src/release-notes/rl-next.md b/doc/manual/src/release-notes/rl-next.md
index adf3010c0..f20acbd3f 100644
--- a/doc/manual/src/release-notes/rl-next.md
+++ b/doc/manual/src/release-notes/rl-next.md
@@ -9,3 +9,7 @@
as `lib.zipAttrsWith` from nixpkgs, but much more efficient.
* New command `nix store copy-log` to copy build logs from one store
to another.
+* The `commit-lockfile-summary` option can be set to a non-empty string
+ to override the commit summary used when commiting an updated lockfile.
+ This may be used in conjunction with the nixConfig attribute in
+ `flake.nix` to better conform to repository conventions.
diff --git a/src/libexpr/flake/flake.cc b/src/libexpr/flake/flake.cc
index 190a128d7..0fbe9b960 100644
--- a/src/libexpr/flake/flake.cc
+++ b/src/libexpr/flake/flake.cc
@@ -633,12 +633,24 @@ LockedFlake lockFlake(
newLockFile.write(path);
+ std::optional<std::string> commitMessage = std::nullopt;
+ if (lockFlags.commitLockFile) {
+ std::string cm;
+
+ cm = settings.commitLockFileSummary.get();
+
+ if (cm == "") {
+ cm = fmt("%s: %s", relPath, lockFileExists ? "Update" : "Add");
+ }
+
+ cm += "\n\nFlake lock file updates:\n\n";
+ cm += filterANSIEscapes(diff, true);
+ commitMessage = cm;
+ }
+
topRef.input.markChangedFile(
(topRef.subdir == "" ? "" : topRef.subdir + "/") + "flake.lock",
- lockFlags.commitLockFile
- ? std::optional<std::string>(fmt("%s: %s\n\nFlake lock file changes:\n\n%s",
- relPath, lockFileExists ? "Update" : "Add", filterANSIEscapes(diff, true)))
- : std::nullopt);
+ commitMessage);
/* Rewriting the lockfile changed the top-level
repo, so we should re-read it. FIXME: we could
diff --git a/src/libstore/globals.hh b/src/libstore/globals.hh
index 1911ec855..f65893b10 100644
--- a/src/libstore/globals.hh
+++ b/src/libstore/globals.hh
@@ -966,6 +966,13 @@ public:
Setting<bool> acceptFlakeConfig{this, false, "accept-flake-config",
"Whether to accept nix configuration from a flake without prompting."};
+
+ Setting<std::string> commitLockFileSummary{
+ this, "", "commit-lockfile-summary",
+ R"(
+ The commit summary to use when commiting changed flake lock files. If
+ empty, the summary is generated based on the action performed.
+ )"};
};