/* Copyright © 2024 Raul */ package cmd import ( "fmt" "github.com/spf13/cobra" "os" ) var clientCmd = &cobra.Command{ Use: "client", Short: "Client interface for mini-chat", Long: `Refactored mini-chat client that properly interfaces with its server. Example: ./mini-chat client --ip 192.168.0.100 --port 1337`, Run: func(cmd *cobra.Command, args []string) { if err := setClientParameters(cmd); err != nil { cmd.Help() fmt.Printf("\n-----------------------\n") fmt.Println(err) fmt.Printf("-----------------------\n") os.Exit(0) } Client() }, } func init() { rootCmd.AddCommand(clientCmd) clientCmd.PersistentFlags().StringP("ip", "i", "", "Server IP to connect to") clientCmd.PersistentFlags().StringP("port", "p", "1302", "Server port to connect to") } func setClientParameters(cmd *cobra.Command) error { parameterPort, err := cmd.Flags().GetString("port") if err != nil { return err } if parameterPort != "" { serverPort = parameterPort } parameterIP, err := cmd.Flags().GetString("ip") if err != nil { return err } if parameterIP == "" { err := fmt.Errorf("IP cannot be empty") return err } serverIP = parameterIP return nil }