aboutsummaryrefslogtreecommitdiff
path: root/cmd/krino
diff options
context:
space:
mode:
authorLukasz Kasprzak <lukas@labunix.xyz>2026-09-15 00:00:05 +0200
committerLukasz Kasprzak <lukas@labunix.xyz>2026-09-15 00:00:05 +0200
commit5310c857d7531986c806404103f118b3c5e364f3 (patch)
tree4022cb838184c7e889793698a8a3cd3c4b6deebc /cmd/krino
parent67ada0b5bc25cb6cff3ab780d82cb0bfe64e4968 (diff)
downloadkrino-5310c857d7531986c806404103f118b3c5e364f3.tar.gz
krino-5310c857d7531986c806404103f118b3c5e364f3.zip
krino log marks a run partly undone while reversible steps remain
Diffstat (limited to 'cmd/krino')
-rw-r--r--cmd/krino/log.go15
1 files changed, 11 insertions, 4 deletions
diff --git a/cmd/krino/log.go b/cmd/krino/log.go
index 903f8e8..bfe61a2 100644
--- a/cmd/krino/log.go
+++ b/cmd/krino/log.go
@@ -102,11 +102,15 @@ func cmdLog(g *globals, args []string, stdout, stderr io.Writer) int {
// styleUndone styles the "(undone)" formatRun appends, faint (spec ยง8.2);
// a line without it is returned as is.
func styleUndone(line string, p palette) string {
- const mark = " (undone)"
- if !p.on || !strings.HasSuffix(line, mark) {
+ if !p.on {
return line
}
- return strings.TrimSuffix(line, mark) + " " + p.faint("(undone)")
+ for _, mark := range []string{"(partly undone)", "(undone)"} {
+ if strings.HasSuffix(line, " "+mark) {
+ return strings.TrimSuffix(line, " "+mark) + " " + p.faint(mark)
+ }
+ }
+ return line
}
// formatRun renders one journal.Run as krino log lists it: id, start time,
@@ -114,7 +118,10 @@ func styleUndone(line string, p palette) string {
// "(undone)" appended when a later run has reversed it.
func formatRun(r journal.Run) string {
line := fmt.Sprintf("%s %s %s %s", display(r.ID), r.Start.Format("2006-01-02 15:04"), display(strings.Join(r.Dirs, ", ")), countsText(r.Counts))
- if r.Undone {
+ switch {
+ case r.PartlyUndone:
+ line += " (partly undone)"
+ case r.Undone:
line += " (undone)"
}
return line