patch := update && (args[0] == "-u=patch") //
// We need to be explicit about the modules to get.
- for _, m := range c.moduleConfig.Imports {
- if !isProbablyModule(m.Path) {
- // Skip themes/components stored below /themes etc.
- // There may be false positives in the above, but those
- // should be rare, and they will fail below with an
- // "cannot find module providing ..." message.
- continue
+ var modules []string
+ // Update all active modules if the -u flag presents.
+ if update {
+ mc, coll := c.collect(true)
+ if coll.err != nil {
+ return coll.err
}
+ for _, m := range mc.AllModules {
+ if m.Owner() == nil {
+ continue
+ }
+ modules = append(modules, m.Path())
+ }
+ } else {
+ for _, m := range c.moduleConfig.Imports {
+ if !isProbablyModule(m.Path) {
+ // Skip themes/components stored below /themes etc.
+ // There may be false positives in the above, but those
+ // should be rare, and they will fail below with an
+ // "cannot find module providing ..." message.
+ continue
+ }
+ modules = append(modules, m.Path)
+ }
+ }
+
+ for _, m := range modules {
var args []string
if update && !patch {
} else if update && patch {
args = append(args, "-u=patch")
}
- args = append(args, m.Path)
+ args = append(args, m)
if err := c.get(args...); err != nil {
return err
--- /dev/null
+hugo mod get -u
+hugo mod graph
+stdout 'commonmod@v1.0.1.*commonmod2@v1.0.2'
+
+-- hugo.toml --
+title = "Hugo Modules Update Test"
+[module]
+[[module.imports]]
+path="github.com/gohugoio/hugo-mod-integrationtests/withconfigtoml"
+disable = true
+[[module.imports]]
+path="github.com/gohugoio/hugo-mod-integrationtests/withhugotoml"
+-- go.mod --
+module foo
+go 1.20
+require (
+ github.com/gohugoio/hugo-mod-integrationtests/withhugotoml v1.1.0 // indirect
+ github.com/gohugoio/hugo-mod-integrationtests/commonmod v0.0.0-20230823103305-919cefe8a425 // indirect
+)
+