package cmd import ( "fmt" "os" "os/signal" "strings" "syscall" "github.com/spf13/cobra" "github.com/spf13/viper" "github.com/elyby/chrly/version" ) var RootCmd = &cobra.Command{ Use: "chrly", Short: "Implementation of Minecraft skins system server", Version: version.Version(), } // 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. func Execute() { if err := RootCmd.Execute(); err != nil { fmt.Println(err) os.Exit(1) } } func init() { cobra.OnInitialize(initConfig) } func initConfig() { viper.AutomaticEnv() replacer := strings.NewReplacer(".", "_") viper.SetEnvKeyReplacer(replacer) } func waitForExitSignal() os.Signal { ch := make(chan os.Signal, 1) signal.Notify(ch, syscall.SIGINT, syscall.SIGTERM) return <-ch }