package main import ( "fmt" "os" "github.com/spf13/cobra" ) var ( cfgFile string serverURL string cliConfig *CLIConfig ) func main() { if err := rootCmd.Execute(); err != nil { fmt.Fprintln(os.Stderr, err) os.Exit(1) } } var rootCmd = &cobra.Command{ Use: "whatshook-cli", Short: "WhatsHooked CLI - Manage WhatsApp webhooks", Long: `A command-line interface for managing WhatsHooked server, hooks, and WhatsApp accounts.`, PersistentPreRun: func(cmd *cobra.Command, args []string) { var err error cliConfig, err = LoadCLIConfig(cfgFile, serverURL) if err != nil { fmt.Fprintf(os.Stderr, "Error loading config: %v\n", err) os.Exit(1) } }, } func init() { rootCmd.PersistentFlags().StringVar(&cfgFile, "config", "", "config file (default: $HOME/.whatshooked/cli.json)") rootCmd.PersistentFlags().StringVar(&serverURL, "server", "", "server URL (default: http://localhost:8080)") // Add all command groups rootCmd.AddCommand(healthCmd) rootCmd.AddCommand(hooksCmd) rootCmd.AddCommand(accountsCmd) rootCmd.AddCommand(sendCmd) }