code: func flagsFromEnv(prefix string, fs *flag.FlagSet) {
  	alreadySet := make(map[string]bool)
  	fs.Visit(func(f *flag.Flag) {
  		alreadySet[f.Name] = true
  	})
  	fs.VisitAll(func(f *flag.Flag) {
  		if !alreadySet[f.Name] {
  			key := strings.ToUpper(prefix + "_" + strings.Replace(f.Name, "-", "_", -1))
  			val := os.Getenv(key)
  			if val != "" {
  				fs.Set(f.Name, val)
  			}
  		}
  	})
  }
docs: // flagsFromEnv parses all registered flags in the given flagset,
  // and if they are not already set it attempts to set their values from
  // environment variables. Environment variables take the name of the flag but
  // are UPPERCASE, have the given prefix, and any dashes are replaced by
  // underscores - for example: some-flag => PREFIX_SOME_FLAG