hugo-cms/config/config.go
2025-02-18 21:26:24 +11:00

39 lines
985 B
Go

package config
import (
"github.com/Netflix/go-env"
"path/filepath"
)
type Config struct {
DatabaseURL string `env:"DATABASE_URL"`
NetlifyAuthToken string `env:"NETLIFY_AUTH_TOKEN"`
DataDir string `env:"DATA_DIR"`
EncryptedCookieKey string `env:"ENCRYPTED_COOKIE_KEY"`
BaseURL string `env:"BASE_URL,default=http://localhost:3000/"`
DataStagingDir string `env:"DATA_STAGING_DIR,default=staging"`
DataScratchDir string `env:"DATA_SCRATCH_DIR,default=scratch"`
DataPreviewDir string `env:"DATA_PREVIEW_DIR,default=preview"`
}
func Load() (cfg Config, err error) {
_, err = env.UnmarshalFromEnviron(&cfg)
if err != nil {
return Config{}, err
}
return cfg, nil
}
func (c Config) StagingDir() string {
return filepath.Join(c.DataDir, c.DataStagingDir)
}
func (c Config) PreviewDir() string {
return filepath.Join(c.DataDir, c.DataPreviewDir)
}
func (c Config) ScratchDir() string {
return filepath.Join(c.DataDir, c.DataScratchDir)
}