diff options
author | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2020-01-30 11:08:49 +0300 |
---|---|---|
committer | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2020-01-30 19:15:35 +0300 |
commit | 49ef6472039ede7d485242eba511207a8274495a (patch) | |
tree | aa7c974699598c6aa649237028ccf2529e15fa9e /modules | |
parent | 8f08cdd0ac6a2decd5aa5c9c12c0b2c264f9a989 (diff) |
modules: Fix "hugo mod get -u" with no arguments
Fixes #6826
Closes #6825
Diffstat (limited to 'modules')
-rw-r--r-- | modules/client.go | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/modules/client.go b/modules/client.go index 462cd6017..1aacc5aa7 100644 --- a/modules/client.go +++ b/modules/client.go @@ -259,6 +259,28 @@ func (c *Client) Vendor() error { // Get runs "go get" with the supplied arguments. func (c *Client) Get(args ...string) error { + if len(args) == 0 || (len(args) == 1 && args[0] == "-u") { + update := len(args) != 0 + + // We need to be explicit about the modules to get. + for _, m := range c.moduleConfig.Imports { + var args []string + if update { + args = []string{"-u"} + } + args = append(args, m.Path) + if err := c.get(args...); err != nil { + return err + } + } + + return nil + } + + return c.get(args...) +} + +func (c *Client) get(args ...string) error { if err := c.runGo(context.Background(), c.logger.Out, append([]string{"get"}, args...)...); err != nil { errors.Wrapf(err, "failed to get %q", args) } @@ -426,6 +448,11 @@ func (c *Client) runGo( return nil } + if strings.Contains(stderr.String(), "invalid version: unknown revision") { + // See https://github.com/gohugoio/hugo/issues/6825 + c.logger.FEEDBACK.Println(`hugo: you need to manually edit go.mod to resolve the unknown revision.`) + } + _, ok := err.(*exec.ExitError) if !ok { return errors.Errorf("failed to execute 'go %v': %s %T", args, err, err) |