Browse Source

pkg: handle version env variable

Version flag is meant for displaying version and it's a boolean.
It's for an internal use, and we may not want users to set
it in the environment.

Fixes # 11210
Sahdev P. Zala 6 years ago
parent
commit
27535517b1
1 changed files with 7 additions and 0 deletions
  1. 7 0
      etcdmain/config.go

+ 7 - 0
etcdmain/config.go

@@ -316,6 +316,13 @@ func (cfg *config) parse(arguments []string) error {
 }
 
 func (cfg *config) configFromCmdLine() error {
+	verKey := "ETCD_VERSION"
+	if verVal := os.Getenv(verKey); verVal != "" {
+		// unset to avoid any possible side-effect.
+		os.Unsetenv(verKey)
+		plog.Warningf("cannot set special environment variable %s=%s", verKey, verVal)
+	}
+
 	err := flags.SetFlagsFromEnv("ETCD", cfg.cf.flagSet)
 	if err != nil {
 		return err