platform.go 738 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. package platform
  2. import (
  3. "os"
  4. "strconv"
  5. "strings"
  6. )
  7. type EnvFlag struct {
  8. Name string
  9. AltName string
  10. }
  11. func (f EnvFlag) GetValue(defaultValue string) string {
  12. if v, found := os.LookupEnv(f.Name); found {
  13. return v
  14. }
  15. if len(f.AltName) > 0 {
  16. if v, found := os.LookupEnv(f.AltName); found {
  17. return v
  18. }
  19. }
  20. return defaultValue
  21. }
  22. func (f EnvFlag) GetValueAsInt(defaultValue int) int {
  23. const PlaceHolder = "xxxxxx"
  24. s := f.GetValue(PlaceHolder)
  25. if s == PlaceHolder {
  26. return defaultValue
  27. }
  28. v, err := strconv.ParseInt(s, 10, 32)
  29. if err != nil {
  30. return defaultValue
  31. }
  32. return int(v)
  33. }
  34. func NormalizeEnvName(name string) string {
  35. return strings.Replace(strings.ToUpper(strings.TrimSpace(name)), ".", "_", -1)
  36. }