package main
import (
"fmt"
"os"
"github.com/spf13/cobra"
)
var rootCmd = &cobra.Command{
Use: "mytool",
Short: "A helpful CLI tool",
Long: `mytool is a CLI application built with Cobra.`,
}
var serveCmd = &cobra.Command{
Use: "serve",
Short: "Start the HTTP server",
RunE: func(cmd *cobra.Command, args []string) error {
port, _ := cmd.Flags().GetInt("port")
fmt.Printf("Starting server on :%d\n", port)
// server logic here
return nil
},
}
var versionCmd = &cobra.Command{
Use: "version",
Short: "Print the version",
Run: func(cmd *cobra.Command, args []string) {
fmt.Println("mytool v1.0.0")
},
}
func init() {
serveCmd.Flags().IntP("port", "p", 8080, "Port to listen on")
rootCmd.AddCommand(serveCmd, versionCmd)
}
func main() {
if err := rootCmd.Execute(); err != nil {
fmt.Fprintln(os.Stderr, err)
os.Exit(1)
}
}