hugo-cms/config/config.go

31 lines
695 B
Go
Raw Normal View History

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)
}