package main import ( "fmt" "os" ) func main() { if len(os.Args) < 2 { printUsage() os.Exit(1) } var err error switch os.Args[1] { case "doctor": err = runDoctor() case "manifest": err = runManifest(os.Args[2:]) case "sync": err = runSync(os.Args[2:]) case "help", "-h", "--help": printUsage() default: fmt.Fprintf(os.Stderr, "unknown command: %s\n", os.Args[1]) printUsage() os.Exit(1) } if err != nil { fmt.Fprintln(os.Stderr, err) os.Exit(1) } } func printUsage() { fmt.Println("bat-go - experimental Go helper (NOT the product CLI)") fmt.Println() fmt.Println("Product sync/ops CLI is the Rust binary `bat` (nearly fully automatic).") fmt.Println("Product resource HTTP service is `bat-api` (see docs/reports/GO_STATUS.md).") fmt.Println() fmt.Println("This binary is experimental FFI demos only. Build output must be bin/bat-go.") fmt.Println() fmt.Println("Usage:") fmt.Println(" bat-go doctor") fmt.Println(" bat-go manifest inspect ") fmt.Println(" bat-go sync plan [previous-json]") }