package cmd import ( "fmt" "os" "github.com/spf13/cobra" "github.com/spf13/viper" "go.uber.org/zap" ) var rootCmd = &cobra.Command{ Use: "hasshelper", Short: "Helper for Home Assistant installations.", Run: func(cmd *cobra.Command, args []string) { var logger *zap.Logger var err error if viper.GetString("deployment") == "prod" { logger, err = zap.NewProduction() } else { logger, err = zap.NewDevelopment() } if err != nil { fmt.Fprintln(os.Stderr, err) os.Exit(1) } logger.Sugar().With("version", viper.GetString("version")).Info("HASSHelper startup") }, } func Execute() { viper.SetDefault("Version", "1.2.3") if err := rootCmd.Execute(); err != nil { fmt.Fprintln(os.Stderr, err) os.Exit(1) } } func init() { cobra.OnInitialize(initConfig) viper.SetEnvPrefix("hasshelper") viper.Set("version", gitVersion) viper.SetDefault("deployment", "prod") } func initConfig() { viper.AutomaticEnv() }