docs: extract goget manpage to standalone troff source

This commit is contained in:
2026-06-29 21:16:28 +02:00
parent 9ef62520c7
commit 9867e2817e
8 changed files with 1163 additions and 206 deletions
+28
View File
@@ -9,6 +9,25 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
### Added
**Documentation**
- **Standalone troff manpage** — `man/goget.1` is now the single source
of truth for the goget(1) manual. The previous embedded manpage listed
only ~30 of the 138 CLI flags and was missing every standard section;
the new file documents every flag with a dedicated entry, the
full set of conventional `.SH` sections (NAME, SYNOPSIS, DESCRIPTION,
OPTIONS, EXAMPLES, EXIT STATUS, FILES, ENVIRONMENT, SEE ALSO, HISTORY,
AUTHORS, REPORTING BUGS, COPYRIGHT), curl/wget compatibility notes, and
a release-history entry. The manpage is embedded into the binary via
`//go:embed`, so `--generate-man-page` and `man goget` now agree.
- **`just man`** — new task that runs `groff -man -ww -Kutf-8 -z` over
`man/goget.1` to validate the troff source. Skips cleanly when `groff`
is not installed (CI on minimal images still passes).
- **`just install-man`** and **`just uninstall-man`** — install the
manpage to `$HOME/.local/share/man/man1/goget.1.gz` (XDG rootless,
gzipped, reinstall-safe). After `just install-man`, `man goget`
resolves the page automatically via the user's `MANPATH`.
**Core engine**
- **Unified worker pool** — single protocol-agnostic worker pool (`internal/pool`)
@@ -53,6 +72,15 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
output when combined with `--json`. Credentials embedded in the stored
URL are masked before display (the password placeholder is `xxxxx`).
### Testing
- `cmd/goget/man_page_test.go` — new test file. Asserts the embedded
manpage is non-empty, carries a `.TH GOGET 1` header, contains every
mandatory `.SH` section, and documents every flag registered by
`defineFlags` (so adding a new flag without documenting it now breaks
the build). When `groff` is installed, also runs `groff -man -ww
-Kutf-8 -z` over the embedded source and fails on any warning.
## [1.0.0] — 2026-06-26
First public release: a modern IPv6-first command-line download utility built on