package main import ( "fmt" "os" ) func main() { if len(os.Args) < 2 { printUsage() os.Exit(1) } command := os.Args[1] switch command { case "init": runInit(os.Args[2:]) case "deploy": runDeploy(os.Args[2:]) case "list": runList(os.Args[2:]) case "remove": runRemove(os.Args[2:]) case "logs": runLogs(os.Args[2:]) case "status": runStatus(os.Args[2:]) case "restart": runRestart(os.Args[2:]) case "env": runEnv(os.Args[2:]) case "webui": runWebUI(os.Args[2:]) case "help", "--help", "-h": printUsage() default: fmt.Fprintf(os.Stderr, "Unknown command: %s\n\n", command) printUsage() os.Exit(1) } } func printUsage() { usage := `deploy - Deploy Go apps and static sites to a VPS with automatic HTTPS USAGE: deploy [flags] COMMANDS: init Initialize a fresh VPS (one-time setup) deploy Deploy a Go app or static site list List all deployed apps and sites remove Remove a deployment logs View logs for a deployment status Check status of a deployment restart Restart a deployment env Manage environment variables webui Launch web UI to manage deployments FLAGS: Run 'deploy -h' for command-specific flags EXAMPLES: # Initialize VPS deploy init --host user@vps-ip # Deploy Go app deploy deploy --host user@vps-ip --binary ./myapp --domain api.example.com # Deploy static site deploy deploy --host user@vps-ip --static --dir ./dist --domain example.com # List deployments deploy list --host user@vps-ip CONFIG FILE: Create ~/.config/deploy/config to set default host: host: user@your-vps-ip ` fmt.Fprint(os.Stderr, usage) }