Skip to content

Commit

Permalink
Add any configured Go Workspace file to the config watcher
Browse files Browse the repository at this point in the history
Fixes #10556
  • Loading branch information
bep committed Dec 19, 2022
1 parent 0d4b17d commit 6db5274
Show file tree
Hide file tree
Showing 4 changed files with 27 additions and 4 deletions.
4 changes: 4 additions & 0 deletions commands/hugo.go
Expand Up @@ -924,6 +924,7 @@ func (c *commandeer) printChangeDetected(typ string) {
const (
configChangeConfig = "config file"
configChangeGoMod = "go.mod file"
configChangeGoWork = "go work file"
)

func (c *commandeer) handleEvents(watcher *watcher.Batcher,
Expand All @@ -943,6 +944,9 @@ func (c *commandeer) handleEvents(watcher *watcher.Batcher,
if strings.Contains(ev.Name, "go.mod") {
configChangeType = configChangeGoMod
}
if strings.Contains(ev.Name, ".work") {
configChangeType = configChangeGoWork
}
}
if !isConfig {
// It may be one of the /config folders
Expand Down
10 changes: 8 additions & 2 deletions hugolib/config.go
Expand Up @@ -417,12 +417,18 @@ func (l configLoader) collectModules(modConfig modules.Config, v1 config.Provide
// Avoid recreating these later.
v1.Set("allModules", moduleConfig.ActiveModules)

// We want to watch these for changes and trigger rebuild on version
// changes etc.
if moduleConfig.GoModulesFilename != "" {
// We want to watch this for changes and trigger rebuild on version
// changes etc.

configFilenames = append(configFilenames, moduleConfig.GoModulesFilename)
}

if moduleConfig.GoWorkspaceFilename != "" {
configFilenames = append(configFilenames, moduleConfig.GoWorkspaceFilename)

}

return moduleConfig.ActiveModules, configFilenames, err
}

Expand Down
13 changes: 11 additions & 2 deletions modules/collect.go
Expand Up @@ -107,9 +107,15 @@ func (h *Client) collect(tidy bool) (ModulesConfig, *collector) {
}
}*/

var workspaceFilename string
if h.ccfg.ModuleConfig.Workspace != WorkspaceDisabled {
workspaceFilename = h.ccfg.ModuleConfig.Workspace
}

return ModulesConfig{
AllModules: c.modules,
GoModulesFilename: c.GoModulesFilename,
AllModules: c.modules,
GoModulesFilename: c.GoModulesFilename,
GoWorkspaceFilename: workspaceFilename,
}, c
}

Expand All @@ -122,6 +128,9 @@ type ModulesConfig struct {

// Set if this is a Go modules enabled project.
GoModulesFilename string

// Set if a Go workspace file is configured.
GoWorkspaceFilename string
}

func (m *ModulesConfig) setActiveMods(logger loggers.Logger) error {
Expand Down
4 changes: 4 additions & 0 deletions modules/config.go
Expand Up @@ -15,6 +15,7 @@ package modules

import (
"fmt"
"os"
"path/filepath"
"strings"

Expand Down Expand Up @@ -261,6 +262,9 @@ func decodeConfig(cfg config.Provider, pathReplacements map[string]string) (Conf
workingDir := cfg.GetString("workingDir")
c.Workspace = filepath.Join(workingDir, c.Workspace)
}
if _, err := os.Stat(c.Workspace); err != nil {
return c, fmt.Errorf("module workspace %q does not exist", c.Workspace)
}
}
}

Expand Down

0 comments on commit 6db5274

Please sign in to comment.