Show the walk's path on the line below its display (closes #160)
check / check (push) Canceled after 0s

On a terminal, each draw of the walk shows the path of the last file
it found on the line below, cut short before the last column with
wide characters counted as two columns. The progressbar library's
detail row draws it. Control characters in the path are written out,
as \t or \x1b, so that the terminal does not act on them. The line is
erased before a warning and when the walk ends, so the next phase is
drawn on it. Nothing changes when stderr is not a terminal.

github.com/rivo/uniseg, already in the module graph through the
progressbar library, becomes a direct dependency for the column count.

Model: opus-5-5
This commit is contained in:
clawbot committed 2026-11-11 03:05:56 +00:00
1 parent 6c529fcc6d
commit f978d10bef
6 files changed
+270 -10

No files matched your search

+7
View File
@@ -29,10 +29,17 @@
Newest first. An entry ends with its date and its issue or branch, where those
are known.
- On a terminal, the line below the `walk` display shows the path of the last
file the walk found, at each draw. Its control characters are written out, as
`\t` or `\x1b`, so that the terminal does not act on them. The line is erased
when the walk ends, and the next phase is drawn on it (2026-11-11,
https://git.eeqj.de/sneak/sfdupes/issues/160)
- `report` and `trees` leave out empty files. `report` writes no group of size
0, and `trees` writes no group whose trees hold 0 bytes. An empty file still
counts toward a tree's digest (2026-11-11,
https://git.eeqj.de/sneak/sfdupes/issues/178)
- The Go code moved out of the repository root. `cmd/sfdupes/main.go` is the
command, and it calls `Main` in the package `internal/sfdupes`. `main.go`
became `internal/sfdupes/cli.go`. Every other file kept its name. The install