env.go 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. package env
  2. import (
  3. "os"
  4. "strconv"
  5. "strings"
  6. )
  7. func Get(name string, val string) string {
  8. value := strings.TrimSpace(os.Getenv(name))
  9. if value == "" {
  10. return val
  11. } else {
  12. return value
  13. }
  14. }
  15. func Getter(val string, names ...string) string {
  16. var (
  17. value string
  18. )
  19. for _, name := range names {
  20. if value = strings.TrimSpace(os.Getenv(name)); value != "" {
  21. return value
  22. }
  23. }
  24. return val
  25. }
  26. func Int(name string, val int64) int64 {
  27. value := Get(name, "")
  28. if n, err := strconv.ParseInt(value, 10, 64); err == nil {
  29. return n
  30. } else {
  31. return val
  32. }
  33. }
  34. func Integer(val int64, names ...string) int64 {
  35. value := Getter("", names...)
  36. if n, err := strconv.ParseInt(value, 10, 64); err == nil {
  37. return n
  38. } else {
  39. return val
  40. }
  41. }
  42. func Float(name string, val float64) float64 {
  43. value := Get(name, "")
  44. if n, err := strconv.ParseFloat(value, 64); err == nil {
  45. return n
  46. } else {
  47. return val
  48. }
  49. }
  50. func Set(name string, val string) {
  51. value := os.Getenv(name)
  52. if value == "" {
  53. os.Setenv(name, val)
  54. }
  55. }