summaryrefslogtreecommitdiffstats
path: root/commands
diff options
context:
space:
mode:
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2022-05-07 14:10:32 +0200
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2022-05-08 16:56:26 +0200
commit35c88a7f907f20652e4e55697c0c438da0c4d57d (patch)
tree0c4d5b9fc4b40e34dc59c2063d2a451b020b1cd5 /commands
parente77ca3c105bd64c5077d823d2127f6f812a4f681 (diff)
Use configured timeZone for the clock
And some other related adjustments. Updates #8787
Diffstat (limited to 'commands')
-rw-r--r--commands/commandeer.go31
-rw-r--r--commands/commands.go2
-rw-r--r--commands/hugo_test.go30
-rw-r--r--commands/server.go5
4 files changed, 40 insertions, 28 deletions
diff --git a/commands/commandeer.go b/commands/commandeer.go
index 20090cccd..b302cbfe0 100644
--- a/commands/commandeer.go
+++ b/commands/commandeer.go
@@ -98,13 +98,12 @@ type commandeer struct {
serverPorts []serverPortListener
- languagesConfigured bool
- languages langs.Languages
- doLiveReload bool
- renderStaticToDisk bool
- fastRenderMode bool
- showErrorInBrowser bool
- wasError bool
+ languages langs.Languages
+ doLiveReload bool
+ renderStaticToDisk bool
+ fastRenderMode bool
+ showErrorInBrowser bool
+ wasError bool
configured bool
paused bool
@@ -168,16 +167,17 @@ func (c *commandeer) initFs(fs *hugofs.Fs) error {
return nil
}
-func (c *commandeer) initClock() error {
+func (c *commandeer) initClock(loc *time.Location) error {
bt := c.Cfg.GetString("clock")
if bt == "" {
return nil
}
- t, err := cast.StringToDateInDefaultLocation(bt, nil)
+ t, err := cast.StringToDateInDefaultLocation(bt, loc)
if err != nil {
return fmt.Errorf(`failed to parse "clock" flag: %s`, err)
}
+
htime.Clock = clock.Start(t)
return nil
}
@@ -359,14 +359,15 @@ func (c *commandeer) loadConfig() error {
c.configFiles = configFiles
- err = c.initClock()
- if err != nil {
- return err
+ var ok bool
+ c.languages, ok = c.Cfg.Get("languagesSorted").(langs.Languages)
+ if !ok {
+ panic("languages not configured")
}
- if l, ok := c.Cfg.Get("languagesSorted").(langs.Languages); ok {
- c.languagesConfigured = true
- c.languages = l
+ err = c.initClock(langs.GetLocation(c.languages[0]))
+ if err != nil {
+ return err
}
// Set some commonly used flags
diff --git a/commands/commands.go b/commands/commands.go
index 97e6d2113..d55a4e9aa 100644
--- a/commands/commands.go
+++ b/commands/commands.go
@@ -281,7 +281,7 @@ func (cc *hugoBuilderCommon) handleCommonBuilderFlags(cmd *cobra.Command) {
cmd.PersistentFlags().StringVarP(&cc.environment, "environment", "e", "", "build environment")
cmd.PersistentFlags().StringP("themesDir", "", "", "filesystem path to themes directory")
cmd.PersistentFlags().StringP("ignoreVendorPaths", "", "", "ignores any _vendor for module paths matching the given Glob pattern")
- cmd.PersistentFlags().StringVar(&cc.clock, "clock", "", "set clock inside hugo, e.g. --clock 2021-11-06T22:30:00.00+09:00")
+ cmd.PersistentFlags().StringVar(&cc.clock, "clock", "", "set the clock used by Hugo, e.g. --clock 2021-11-06T22:30:00.00+09:00")
}
func (cc *hugoBuilderCommon) handleFlags(cmd *cobra.Command) {
diff --git a/commands/hugo_test.go b/commands/hugo_test.go
index 61160b7dd..1e1326642 100644
--- a/commands/hugo_test.go
+++ b/commands/hugo_test.go
@@ -21,7 +21,9 @@ import (
"strings"
"testing"
+ "github.com/bep/clock"
qt "github.com/frankban/quicktest"
+ "github.com/gohugoio/hugo/common/htime"
"github.com/gohugoio/hugo/hugofs"
"github.com/spf13/afero"
"golang.org/x/tools/txtar"
@@ -29,6 +31,7 @@ import (
// Issue #5662
func TestHugoWithContentDirOverride(t *testing.T) {
+ t.Parallel()
c := qt.New(t)
files := `
@@ -50,6 +53,7 @@ Page: {{ .Title }}|
// Issue #9794
func TestHugoStaticFilesMultipleStaticAndManyFolders(t *testing.T) {
+ t.Parallel()
c := qt.New(t)
files := `
@@ -95,12 +99,15 @@ Home.
// Issue #8787
func TestHugoListCommandsWithClockFlag(t *testing.T) {
+ t.Cleanup(func() { htime.Clock = clock.System() })
+
c := qt.New(t)
files := `
-- config.toml --
baseURL = "https://example.org"
title = "Hugo Commands"
+timeZone = "UTC"
-- content/past.md --
---
title: "Past"
@@ -115,7 +122,9 @@ date: 2200-11-06
Page: {{ .Title }}|
`
- s := newTestHugoCmdBuilder(c, files, []string{"list", "future"}).Build()
+ s := newTestHugoCmdBuilder(c, files, []string{"list", "future"})
+ s.captureOut = true
+ s.Build()
p := filepath.Join("content", "future.md")
s.AssertStdout(p + ",2200-11-06T00:00:00Z")
@@ -130,7 +139,9 @@ type testHugoCmdBuilder struct {
dir string
files string
args []string
- out string
+
+ captureOut bool
+ out string
}
func newTestHugoCmdBuilder(c *qt.C, files string, args []string) *testHugoCmdBuilder {
@@ -156,12 +167,17 @@ func (s *testHugoCmdBuilder) Build() *testHugoCmdBuilder {
args := append(s.args, "-s="+s.dir, "--quiet")
cmd.SetArgs(args)
- out, err := captureStdout(func() error {
+ if s.captureOut {
+ out, err := captureStdout(func() error {
+ _, err := cmd.ExecuteC()
+ return err
+ })
+ s.Assert(err, qt.IsNil)
+ s.out = out
+ } else {
_, err := cmd.ExecuteC()
- return err
- })
- s.Assert(err, qt.IsNil)
- s.out = out
+ s.Assert(err, qt.IsNil)
+ }
return s
}
diff --git a/commands/server.go b/commands/server.go
index 73e5cf073..5fdde21c5 100644
--- a/commands/server.go
+++ b/commands/server.go
@@ -166,11 +166,6 @@ func (sc *serverCmd) server(cmd *cobra.Command, args []string) error {
c.Set("watch", true)
}
- // TODO(bep) yes, we should fix.
- if !c.languagesConfigured {
- return nil
- }
-
// We can only do this once.
serverCfgInit.Do(func() {
c.serverPorts = make([]serverPortListener, 1)