package main import ( "fmt" "os" ) func usage() { fmt.Fprint(os.Stderr, `preseem - CLI for the Preseem Model API at $PRESEEM_URL (default `+defaultBaseURL+`) Auth: export PRESEEM_KEY= (HTTP Basic, key as username, empty password) Resources (read-only): accounts list | get ap list | get (access points) ap-config get ap-scores cpe-scores packages list | get services list | get routers list | get olts list | get sites list | get Write operations: clear-services [--dry-run | --confirm] [--account ] delete all services (MACs) from all accounts --dry-run: preview only; --confirm: actually delete --account: limit to a single account ID Common flags: list: [--json] [--page N] [--limit 100..1000] (no --page = auto-paginate; --json + auto = merged data envelope) get: [--json] Examples: preseem accounts list preseem ap list --json | jq '.data[].name' preseem ap get 123 preseem ap-scores preseem sites list --page 1 --limit 100 `) } func main() { if len(os.Args) < 2 { usage() os.Exit(2) } var err error switch os.Args[1] { case "accounts": err = cmdAccounts(os.Args[2:]) case "ap": err = cmdAP(os.Args[2:]) case "ap-config": err = cmdAPConfig(os.Args[2:]) case "ap-scores": err = cmdAPScores(os.Args[2:]) case "cpe-scores": err = cmdCPEScores(os.Args[2:]) case "packages": err = cmdPackages(os.Args[2:]) case "services": err = cmdServices(os.Args[2:]) case "routers": err = cmdRouters(os.Args[2:]) case "olts": err = cmdOLTs(os.Args[2:]) case "sites": err = cmdSites(os.Args[2:]) case "clear-services": err = cmdClearServices(os.Args[2:]) case "-h", "--help", "help": usage() return default: usage() os.Exit(2) } if err != nil { fmt.Fprintln(os.Stderr, "error:", err) os.Exit(1) } }