2025-01-26 22:26:15 +00:00
|
|
|
package config
|
|
|
|
|
2025-01-27 04:45:53 +00:00
|
|
|
import (
|
|
|
|
"github.com/Netflix/go-env"
|
|
|
|
"path/filepath"
|
|
|
|
)
|
2025-01-26 22:26:15 +00:00
|
|
|
|
|
|
|
type Config struct {
|
2025-01-27 04:45:53 +00:00
|
|
|
DatabaseURL string `env:"DATABASE_URL"`
|
|
|
|
NetlifyAuthToken string `env:"NETLIFY_AUTH_TOKEN"`
|
|
|
|
DataDir string `env:"DATA_DIR"`
|
|
|
|
DataStagingDir string `env:"DATA_STAGING_DIR,default=staging"`
|
|
|
|
DataScratchDir string `env:"DATA_SCRATCH_DIR,default=scratch"`
|
2025-01-26 22:26:15 +00:00
|
|
|
}
|
|
|
|
|
2025-01-27 04:45:53 +00:00
|
|
|
func Load() (cfg Config, err error) {
|
|
|
|
_, err = env.UnmarshalFromEnviron(&cfg)
|
|
|
|
if err != nil {
|
|
|
|
return Config{}, err
|
|
|
|
}
|
|
|
|
return cfg, nil
|
2025-01-26 22:26:15 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
func (c Config) StagingDir() string {
|
|
|
|
return filepath.Join(c.DataDir, c.DataStagingDir)
|
|
|
|
}
|
2025-01-27 04:45:53 +00:00
|
|
|
|
|
|
|
func (c Config) ScratchDir() string {
|
|
|
|
return filepath.Join(c.DataDir, c.DataScratchDir)
|
|
|
|
}
|