hugo-cms/config/config.go

31 lines
695 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"`
DataStagingDir string `env:"DATA_STAGING_DIR,default=staging"`
DataScratchDir string `env:"DATA_SCRATCH_DIR,default=scratch"`
}
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) ScratchDir() string {
return filepath.Join(c.DataDir, c.DataScratchDir)
}