package main
import (
"fmt"
"github.com/spf13/cobra"
"github.com/spf13/viper"
)
func main() {
var rootCmd = &cobra.Command{
Use: "app",
Short: "This is a simple CLI app",
Run: func(cmd *cobra.Command, args []string) {
fmt.Println("Server Address:", viper.GetString("server.address"))
fmt.Println("Server Port:", viper.GetInt("server.port"))
},
}
var versionCmd = &cobra.Command{
Use: "version",
Short: "Print the version number of MyTool",
Run: func(cmd *cobra.Command, args []string) {
fmt.Println("MyTool v0.1.0")
},
}
rootCmd.PersistentFlags().String("address", "", "Server address")
rootCmd.PersistentFlags().Int("port", 8080, "Server port")
viper.BindPFlag("server.address", rootCmd.PersistentFlags().Lookup("address"))
viper.BindPFlag("server.port", rootCmd.PersistentFlags().Lookup("port"))
viper.SetDefault("server.address", "127.0.0.1")
viper.SetConfigName("config")
viper.SetConfigType("yaml")
viper.AddConfigPath(".")
viper.ReadInConfig()
rootCmd.AddCommand(versionCmd)
rootCmd.Execute()
}
08-01
1100
