check / check (push) Canceled after 0s
`go install sneak.berlin/go/sfdupes/cmd/sfdupes@...` found no package: the command was built from `package main` in the repository root. It now lives in `cmd/sfdupes/main.go`, whose one call is `sfdupes.Main()`, and every other Go file moved with `git mv` to `internal/sfdupes`, as `REPO_POLICIES.md` and the Go style guide require. The `Makefile` builds `./cmd/sfdupes` and sets `Version` by its new import path. README "Install" and `TODO.md` give the new paths; the fleet-written "flat layout" divergence is gone. Rule suppressed: each test file carries `//nolint:testpackage`, since the tests call unexported functions throughout. Model: opus-5-5
30 lines
979 B
Go
30 lines
979 B
Go
// Command sfdupes quickly identifies candidate duplicate files across
|
|
// very large filesystems without reading every byte of every file.
|
|
// Files are considered duplicates when their sizes are equal and they
|
|
// agree on three SHA-256 hashes: of the first 64 KiB, of the last 64
|
|
// KiB, and of the content. The content hash covers the whole file under
|
|
// 100 MiB, and 1 MiB at each gigabyte at 100 MiB or more, so a large
|
|
// file is never read in full. scan maintains a persistent SQLite
|
|
// database of file signatures (SFDUPES_DATABASE, default
|
|
// /var/lib/sfdupes/db.sqlite) that the other subcommands read.
|
|
//
|
|
// Usage:
|
|
//
|
|
// sfdupes scan [--workers N] [-x] [--no-default-excludes] PATH...
|
|
// sfdupes report > dupes.tsv
|
|
// sfdupes trees > dupetrees.tsv
|
|
// sfdupes info
|
|
// sfdupes dwim
|
|
// sfdupes --version
|
|
//
|
|
// See README.md for the complete specification.
|
|
package main
|
|
|
|
import (
|
|
"os"
|
|
|
|
"sneak.berlin/go/sfdupes/internal/sfdupes"
|
|
)
|
|
|
|
func main() { os.Exit(sfdupes.Main()) }
|