Skip to content

Fold inlet-admin into inlet admin - #1

Merged
ynui merged 3 commits into
mainfrom
binaries
Oct 31, 2026
Merged

ynui merged 3 commits into
mainfrom
binaries

Conversation

@ynui

@ynui ynui commented Oct 31, 2026

Copy link
Copy Markdown
Owner

Summary

Option A from the CLI-shipping discussion: two binaries instead of three. The
remote admin commands move into the client as inlet admin ..., so a single
brew install ynui/tap/inlet gets the client and the operator commands, while
inletd stays a separate server artifact (Docker / release archive / go install).

  • Move cmd/admin → internal/admincli; client dispatches case "admin".
  • Delete cmd/admin; make build now produces only ./inlet and ./inletd.
  • Release workflow: drop the admin build, split per-target archives into
    inlet-… and inletd-…, checksum both, upload inlet*-$VERSION-*,
    formula installs only inlet (tap updater also rewrites bin.install).
  • Docs (README, docs.html, AGENTS.md), scripts/dev.sh, .env.example
    updated to inlet admin. docs.html no longer claims brew ships the server.
  • Add normalizeServer / adminEndpoint / isLoopback tests.
  • Fix a pre-existing vet bug: usage used Fprint with %s, which printed a
    literal %s and was missing config.json (expected by TestHelpIsDetailed).

Test plan

  • gofmt -l cmd internal clean
  • go vet ./... clean
  • go test -race ./... all pass
  • make build produces inlet + inletd only
  • ./inlet admin version / ./inlet admin --help
  • Isolated E2E: inletd token create → inlet admin auth → inlet admin token list / config show

Notes

  • inletd has no brew formula by design (Docker-first). It ships as its own
    archive and via go install github.com/ynui/inlet/cmd/server@latest.
  • The tap formula only updates on the next tagged release (workflow rewrites
    bin.install automatically).

ynui added 3 commits October 31, 2026 14:46
Two binaries now: inlet (with `inlet admin ...`) and inletd.

- Move cmd/admin into internal/admincli; expose as inlet admin subcommand
- Delete cmd/admin; make build produces only inlet + inletd
- Release workflow: build only two binaries, split archives (inlet / inletd),
  brew installs only inlet; formula updater rewrites bin.install too
- Docs (README, docs.html, AGENTS.md), dev.sh, .env.example updated
- Add normalizeServer/adminEndpoint/isLoopback tests
- Fix pre-existing vet bug: help used Fprint with %s (now Fprintf) and was
  missing config.json, which TestHelpIsDetailed expects
- Rename cmd/client -> cmd/inlet, cmd/server -> cmd/inletd so
  go install produces inlet/inletd binaries
- Add CI workflow (gofmt, vet, test -race) on PRs
- Make release.yml runnable via workflow_dispatch (upload/tap bump skipped)
- Require --server for inlet admin auth (no implicit demo default)
- Stop render goroutine before restoring the screen; add missing return
  in case auth
- Credential-separation tests (temp HOME): admin ignores config.json,
  client commands ignore admin.json
- Harden formula: rewrite test do if it references removed binaries
- README: go install paths + localhost default note; retitle local admin
  heading; drop migration note (no existing clients)
@ynui ynui changed the title Fold inlet-admin into inlet admin (Option A) Fold inlet-admin into inlet admin Oct 31, 2026
@ynui
ynui merged commit b982602 into main Oct 31, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant