hugo-cms/config/config.go
Leon Mika 68aa9c0e13 Added site previewing
This will generate a local version of the Hugo site and serve it via the server
2025-02-17 21:41:36 +11:00

38 lines
910 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"`
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)
}