diff --git a/cmd/root.go b/cmd/root.go index f977065..528366f 100644 --- a/cmd/root.go +++ b/cmd/root.go @@ -6,14 +6,18 @@ import ( "github.com/spf13/cobra" ) -// rootCmd represents the base command when called without any subcommands -var rootCmd = &cobra.Command{ - Use: "ProxySwitcher", - Short: "A simple internet proxy switching tool", - // Uncomment the following line if your bare application - // has an action associated with it: - // Run: func(cmd *cobra.Command, args []string) { }, -} +var ( + cfgFile string + + // rootCmd represents the base command when called without any subcommands + rootCmd = &cobra.Command{ + Use: "ProxySwitcher", + Short: "A simple internet proxy switching tool", + // Uncomment the following line if your bare application + // has an action associated with it: + // Run: func(cmd *cobra.Command, args []string) { }, + } +) // Execute adds all child commands to the root command and sets flags appropriately. // This is called by main.main(). It only needs to happen once to the rootCmd. @@ -25,14 +29,22 @@ func Execute() { } func init() { + cobra.OnInitialize(initConfig) + // Here you will define your flags and configuration settings. // Cobra supports persistent flags, which, if defined here, // will be global for your application. - // rootCmd.PersistentFlags().StringVar(&cfgFile, "config", "", "config file (default is $HOME/.ProxySwitcher.yaml)") + rootCmd.PersistentFlags().StringVar(&cfgFile, "configs", "c", "configs file (default is 'configs.json' in cwd)") // Cobra also supports local flags, which will only run // when this action is called directly. // rootCmd.Flags().BoolP("toggle", "t", false, "Help message for toggle") } + +func initConfig() { + if cfgFile == "" { + cfgFile = "configs.json" + } +}