Fix regression when loading config -e is empty or HUGO_ENV or HUGO_ENVIRONMENT is set

Fixes #11013
This commit is contained in:
Bjørn Erik Pedersen 2023-05-24 15:53:49 +02:00
parent 5adc837904
commit 231374a1fa
6 changed files with 77 additions and 7 deletions

View file

@ -990,9 +990,23 @@ func (c *hugoBuilder) loadConfig(cd *simplecobra.Commandeer, running bool) error
cfg := config.New()
cfg.Set("renderToDisk", (c.s == nil && !c.r.renderToMemory) || (c.s != nil && c.s.renderToDisk))
watch := c.r.buildWatch || (c.s != nil && c.s.serverWatch)
if c.r.environment != "" {
cfg.Set("environment", c.r.environment)
if c.r.environment == "" {
// We need to set the environment as early as possible because we need it to load the correct config.
// Check if the user has set it in env.
if env := os.Getenv("HUGO_ENVIRONMENT"); env != "" {
c.r.environment = env
} else if env := os.Getenv("HUGO_ENV"); env != "" {
c.r.environment = env
} else {
if c.s != nil {
// The server defaults to development.
c.r.environment = hugo.EnvironmentDevelopment
} else {
c.r.environment = hugo.EnvironmentProduction
}
}
}
cfg.Set("environment", c.r.environment)
cfg.Set("internal", maps.Params{
"running": running,