package cmd import ( "os" "strconv" "strings" log "github.com/sirupsen/logrus" "github.com/spf13/cobra" "github.com/spf13/pflag" ) func EnvDisableSendWithDeliveryCheck() bool { envVar := "NB_DISABLE_SEND_WITH_DELIVERY_CHECK" value, present := os.LookupEnv(envVar) if !present { return false } if parsed, err := strconv.ParseBool(value); err == nil { return parsed } return false } // setFlagsFromEnvVars reads and updates flag values from environment variables with prefix NB_ func setFlagsFromEnvVars(cmd *cobra.Command) { flags := cmd.PersistentFlags() flags.VisitAll(func(f *pflag.Flag) { newEnvVar := flagNameToEnvVar(f.Name, "NB_") value, present := os.LookupEnv(newEnvVar) if !present { return } err := flags.Set(f.Name, value) if err != nil { log.Infof("unable to configure flag %s using variable %s, err: %v", f.Name, newEnvVar, err) } }) } // flagNameToEnvVar converts flag name to environment var name adding a prefix, // replacing dashes and making all uppercase (e.g. setup-keys is converted to NB_SETUP_KEYS according to the input prefix) func flagNameToEnvVar(cmdFlag string, prefix string) string { parsed := strings.ReplaceAll(cmdFlag, "-", "_") upper := strings.ToUpper(parsed) return prefix + upper }