From 4f268edc10e92011fa991758ec64c7bb330a1b47 Mon Sep 17 00:00:00 2001 From: hunterlong Date: Wed, 10 Jun 2020 12:41:43 -0700 Subject: [PATCH] fixed ENV merge with flags. --- cmd/flags.go | 9 ++++----- cmd/main.go | 5 ++++- handlers/handlers.go | 3 ++- handlers/server.go | 2 -- utils/env.go | 5 ++++- utils/log.go | 2 +- 6 files changed, 15 insertions(+), 11 deletions(-) diff --git a/cmd/flags.go b/cmd/flags.go index 130a958e..4476aca3 100644 --- a/cmd/flags.go +++ b/cmd/flags.go @@ -2,7 +2,6 @@ package main import ( "github.com/spf13/cobra" - "github.com/spf13/viper" "github.com/statping/statping/utils" ) @@ -15,14 +14,14 @@ var ( func parseFlags(cmd *cobra.Command) { cmd.PersistentFlags().StringVarP(&ipAddress, "ip", "s", "0.0.0.0", "server run on host") - viper.BindPFlag("ip", cmd.PersistentFlags().Lookup("ip")) + utils.Params.BindPFlag("ip", cmd.PersistentFlags().Lookup("ip")) cmd.PersistentFlags().IntVarP(&port, "port", "p", 8080, "server port") - viper.BindPFlag("port", cmd.PersistentFlags().Lookup("port")) + utils.Params.BindPFlag("port", cmd.PersistentFlags().Lookup("port")) cmd.PersistentFlags().IntVarP(&verboseMode, "verbose", "v", 2, "verbose logging") - viper.BindPFlag("verbose", cmd.PersistentFlags().Lookup("verbose")) + utils.Params.BindPFlag("VERBOSE", cmd.PersistentFlags().Lookup("verbose")) cmd.PersistentFlags().StringVarP(&configFile, "config", "c", utils.Directory+"/config.yml", "path to config.yml file") - viper.BindPFlag("config", cmd.PersistentFlags().Lookup("config")) + utils.Params.BindPFlag("config", cmd.PersistentFlags().Lookup("config")) } diff --git a/cmd/main.go b/cmd/main.go index 946e8f2b..9e0aab76 100644 --- a/cmd/main.go +++ b/cmd/main.go @@ -29,6 +29,8 @@ var ( func init() { process = make(chan struct{}) core.New(VERSION) + utils.InitEnvs() + rootCmd.AddCommand(versionCmd) rootCmd.AddCommand(assetsCmd) rootCmd.AddCommand(exportCmd) @@ -37,7 +39,7 @@ func init() { rootCmd.AddCommand(onceCmd) rootCmd.AddCommand(envCmd) rootCmd.AddCommand(resetCmd) - utils.InitLogs() + parseFlags(rootCmd) } @@ -57,6 +59,7 @@ func Close() { // main will run the Statping application func main() { + utils.InitLogs() go Execute() <-process Close() diff --git a/handlers/handlers.go b/handlers/handlers.go index fff70a23..6ee81ad6 100644 --- a/handlers/handlers.go +++ b/handlers/handlers.go @@ -41,7 +41,7 @@ func RunHTTPServer() error { } ip := utils.Params.GetString("HOST") - host := fmt.Sprintf("%v:%v", ip, utils.Params.GetInt64("PORT")) + host := fmt.Sprintf("%v:%v", ip, utils.Params.GetInt("PORT")) key := utils.FileExists(utils.Directory + "/server.key") cert := utils.FileExists(utils.Directory + "/server.crt") @@ -55,6 +55,7 @@ func RunHTTPServer() error { router = Router() resetCookies() + httpError = make(chan error) if usingSSL { go startSSLServer(ip) diff --git a/handlers/server.go b/handlers/server.go index 78918a38..7e3fd167 100644 --- a/handlers/server.go +++ b/handlers/server.go @@ -8,7 +8,6 @@ import ( ) func startServer(host string) { - httpError = make(chan error) httpServer = &http.Server{ Addr: host, WriteTimeout: timeout, @@ -23,7 +22,6 @@ func startServer(host string) { } func startSSLServer(ip string) { - httpError = make(chan error) cfg := &tls.Config{ MinVersion: tls.VersionTLS12, CurvePreferences: []tls.CurveID{tls.CurveP521, tls.CurveP384, tls.CurveP256}, diff --git a/utils/env.go b/utils/env.go index 4560da1f..7236e03f 100644 --- a/utils/env.go +++ b/utils/env.go @@ -11,7 +11,10 @@ var ( Params *viper.Viper ) -func initEnvs() { +func InitEnvs() { + if Params != nil { + return + } Params = viper.New() Params.AutomaticEnv() diff --git a/utils/log.go b/utils/log.go index fb6c9512..add3ccbf 100644 --- a/utils/log.go +++ b/utils/log.go @@ -146,7 +146,7 @@ func createLog(dir string) error { // InitLogs will create the '/logs' directory and creates a file '/logs/statup.log' for application logging func InitLogs() error { - initEnvs() + InitEnvs() if Params.GetBool("DISABLE_LOGS") { return nil }