Avoid failing with "module not found" for hugo mod init and similar

Fixes #8940
This commit is contained in:
Bjørn Erik Pedersen 2021-08-31 12:08:11 +02:00
parent 0fc2ce9e4b
commit a0489c2dfd
No known key found for this signature in database
GPG key ID: 330E6E2BD4859D8F
2 changed files with 11 additions and 2 deletions

View file

@ -309,7 +309,12 @@ func (c *commandeer) loadConfig(mustHaveConfigFile, running bool) error {
doWithConfig) doWithConfig)
if err != nil { if err != nil {
// We should improve the error handling here,
// but with hugo mod init and similar there is a chicken and egg situation
// with modules already configured in config.toml, so ignore those errors.
if mustHaveConfigFile || !moduleNotFoundRe.MatchString(err.Error()) {
return err return err
}
} else if mustHaveConfigFile && len(configFiles) == 0 { } else if mustHaveConfigFile && len(configFiles) == 0 {
return hugolib.ErrNoConfigFile return hugolib.ErrNoConfigFile
} }

View file

@ -151,7 +151,7 @@ func LoadConfig(d ConfigSourceDescriptor, doWithConfig ...func(cfg config.Provid
return nil return nil
} }
_, modulesConfigFiles, err := l.collectModules(modulesConfig, l.cfg, collectHook) _, modulesConfigFiles, modulesCollectErr := l.collectModules(modulesConfig, l.cfg, collectHook)
if err != nil { if err != nil {
return l.cfg, configFiles, err return l.cfg, configFiles, err
} }
@ -166,6 +166,10 @@ func LoadConfig(d ConfigSourceDescriptor, doWithConfig ...func(cfg config.Provid
return l.cfg, configFiles, err return l.cfg, configFiles, err
} }
if err == nil {
err = modulesCollectErr
}
return l.cfg, configFiles, err return l.cfg, configFiles, err
} }