commands: Make the error handling for the mod commands more lenient

So it at least is possible to do a `hugo mod clean --all` if the cache is in a funky state.
This commit is contained in:
Bjørn Erik Pedersen 2021-09-17 17:16:34 +02:00
parent 1cabf61ddf
commit 13ad8408fc
No known key found for this signature in database
GPG key ID: 330E6E2BD4859D8F
2 changed files with 7 additions and 3 deletions

View file

@ -323,8 +323,11 @@ func (c *commandeer) loadConfig() error {
// We should improve the error handling here, // We should improve the error handling here,
// but with hugo mod init and similar there is a chicken and egg situation // 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. // with modules already configured in config.toml, so ignore those errors.
if c.mustHaveConfigFile || !moduleNotFoundRe.MatchString(err.Error()) { if c.mustHaveConfigFile || (c.failOnInitErr && !moduleNotFoundRe.MatchString(err.Error())) {
return err return err
} else {
// Just make it a warning.
c.logger.Warnln(err)
} }
} else if c.mustHaveConfigFile && len(configFiles) == 0 { } else if c.mustHaveConfigFile && len(configFiles) == 0 {
return hugolib.ErrNoConfigFile return hugolib.ErrNoConfigFile

View file

@ -71,11 +71,12 @@ Also note that if you configure a positive maxAge for the "modules" file cache,
if all { if all {
com, err := c.initConfig(false) com, err := c.initConfig(false)
if err != nil && !moduleNotFoundRe.MatchString(err.Error()) { if err != nil && com == nil {
return err return err
} }
_, err = com.hugo().FileCaches.ModulesCache().Prune(true) count, err := com.hugo().FileCaches.ModulesCache().Prune(true)
com.logger.Printf("Deleted %d files from module cache.", count)
return err return err
} }
return c.withModsClient(true, func(c *modules.Client) error { return c.withModsClient(true, func(c *modules.Client) error {