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.
Showing the changes to main.go (1 of 55 files). Show all
Unified · Split
| @@ -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 | +} | |