config.go 877 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. package scaleway
  2. import (
  3. "fmt"
  4. "os"
  5. )
  6. type config struct {
  7. apiUrl *string
  8. region string
  9. projectId string
  10. accessKey string
  11. secretKey string
  12. }
  13. func loadConfigFromEnv() (*config, error) {
  14. var cfg config
  15. var err error
  16. if apiUrl, ok := os.LookupEnv("SCALEWAY_API_URL"); ok {
  17. cfg.apiUrl = &apiUrl
  18. }
  19. cfg.region, err = getEnv("SCALEWAY_REGION")
  20. if err != nil {
  21. return nil, err
  22. }
  23. cfg.projectId, err = getEnv("SCALEWAY_PROJECT_ID")
  24. if err != nil {
  25. return nil, err
  26. }
  27. cfg.accessKey, err = getEnv("SCALEWAY_ACCESS_KEY")
  28. if err != nil {
  29. return nil, err
  30. }
  31. cfg.secretKey, err = getEnv("SCALEWAY_SECRET_KEY")
  32. if err != nil {
  33. return nil, err
  34. }
  35. return &cfg, nil
  36. }
  37. func getEnv(name string) (string, error) {
  38. value, ok := os.LookupEnv(name)
  39. if !ok {
  40. return "", fmt.Errorf("environment variable %q is not set", name)
  41. }
  42. return value, nil
  43. }