local_file.go 657 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. package loadenv
  2. import (
  3. "fmt"
  4. "os"
  5. "github.com/DarthSim/godotenv"
  6. )
  7. func loadLocalFile() error {
  8. path := os.Getenv("IMGPROXY_ENV_LOCAL_FILE_PATH")
  9. if len(path) == 0 {
  10. return nil
  11. }
  12. data, err := os.ReadFile(path)
  13. if err != nil {
  14. return fmt.Errorf("Can't read local environment file: %s", err)
  15. }
  16. if len(data) == 0 {
  17. return nil
  18. }
  19. envmap, err := godotenv.Unmarshal(string(data))
  20. if err != nil {
  21. return fmt.Errorf("Can't parse config from local file: %s", err)
  22. }
  23. for k, v := range envmap {
  24. if err = os.Setenv(k, v); err != nil {
  25. return fmt.Errorf("Can't set %s env variable from local file: %s", k, err)
  26. }
  27. }
  28. return nil
  29. }