History

feat: tx9 Go CLI — create/list/enter/backup/import and full v1 surface

Implements the CLI spec'd in docs/tx9-cli-design.md as a single Go binary at the repo root, embedding provision/, guest/, docker/ and box.env as the image build context (built locally on first create, tagged tx9-box:<cli-version>). Command surface: create (generated names + getting-started checklist), list (label-derived state + version drift), enter/ssh, start/stop, open, doctor (in-box hb doctor + host port probe), backup/export (quiesce -> tar -> validate -> gpg AES256 -> verify -> .tx9), import (validate-before-create, stage-then-promote, arrives quiesced + gateway-disabled + fresh token), upgrade (box recreate or CLI self-update from GitHub Releases), delete (typed-name confirm), prune. Contracts carried from the verified boxd prototype: agent/executor split topology with per-box network + DNS aliases, IPv6-disable sysctl, BOXD_EXECUTOR_TOKEN override precedence, boot-window retry, the 12-rule member-by-member archive validator, per-box flock fail-fast locking, and the gateway single-writer gate. Also: release workflow (tag push -> cross-compiled GitHub Release + checksums), scripts/install.sh for the tx9.davis7.sh/install redirect, make check now includes gofmt/vet/build/test via go-check. E2E-verified on this machine: create -> list -> stop/start -> upgrade -> encrypted backup -> import (fresh token, markers re-armed, wrong passphrase fails clean, collision fails clean) -> delete with zero residue.

Ben Davis committed 4 months ago

Commit 1dc4a5d1 parent 9a030e255 files · +5881 −7Browse files

Showing the changes to main.go (1 of 55 files). Show all

Unified · Split

main.go+12−0
@@ -0,0 +1,12 @@
1+// Command tx9 creates and manages hermes boxes (see docs/tx9-cli-design.md).
2+package main
3+
4+import (
5+ "os"
6+
7+ "github.com/davis7dotsh/tx9/internal/cli"
8+)
9+
10+func main() {
11+ os.Exit(cli.Run(os.Args, BuildContext))
12+}