env.go 782 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. package env
  2. import (
  3. "fmt"
  4. "os"
  5. "github.com/joho/godotenv"
  6. )
  7. const IMAGE_STORE = "IMAGE_STORE"
  8. const HOST_PORT = "HOST_PORT"
  9. const HOST_ADDR = "HOST_ADDR"
  10. const CHAIN = "CHAIN"
  11. const KEY = "KEY"
  12. var REQUIRED_VARS = []string{
  13. IMAGE_STORE,
  14. HOST_PORT,
  15. HOST_ADDR,
  16. CHAIN,
  17. KEY,
  18. }
  19. type EnvNotSet struct {
  20. NotSet string
  21. }
  22. func (e *EnvNotSet) Error() string {
  23. return fmt.Sprintf("Environment variable: '%s' was not set.", e.NotSet)
  24. }
  25. /*
  26. verify all environment vars passed in are set
  27. :param vars: array of strings to verify
  28. */
  29. func LoadAndVerifyEnv(path string, vars []string) error {
  30. err := godotenv.Load(path)
  31. if err != nil {
  32. return err
  33. }
  34. for i := range vars {
  35. if os.Getenv(vars[i]) == "" {
  36. return &EnvNotSet{NotSet: vars[i]}
  37. }
  38. }
  39. return nil
  40. }