config.go 845 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. package delinea
  2. import (
  3. "fmt"
  4. "os"
  5. )
  6. type config struct {
  7. tld string
  8. urlTemplate string
  9. tenant string
  10. clientID string
  11. clientSecret string
  12. }
  13. func loadConfigFromEnv() (*config, error) {
  14. var cfg config
  15. var err error
  16. // Optional settings
  17. cfg.tld, _ = getEnv("DELINEA_TLD")
  18. cfg.urlTemplate, _ = getEnv("DELINEA_URL_TEMPLATE")
  19. // Required settings
  20. cfg.tenant, err = getEnv("DELINEA_TENANT")
  21. if err != nil {
  22. return nil, err
  23. }
  24. cfg.clientID, err = getEnv("DELINEA_CLIENT_ID")
  25. if err != nil {
  26. return nil, err
  27. }
  28. cfg.clientSecret, err = getEnv("DELINEA_CLIENT_SECRET")
  29. if err != nil {
  30. return nil, err
  31. }
  32. return &cfg, nil
  33. }
  34. func getEnv(name string) (string, error) {
  35. value, ok := os.LookupEnv(name)
  36. if !ok {
  37. return "", fmt.Errorf("environment variable %q is not set", name)
  38. }
  39. return value, nil
  40. }