diff options
author | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2022-05-07 14:10:32 +0200 |
---|---|---|
committer | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2022-05-08 16:56:26 +0200 |
commit | 35c88a7f907f20652e4e55697c0c438da0c4d57d (patch) | |
tree | 0c4d5b9fc4b40e34dc59c2063d2a451b020b1cd5 /commands | |
parent | e77ca3c105bd64c5077d823d2127f6f812a4f681 (diff) |
Use configured timeZone for the clock
And some other related adjustments.
Updates #8787
Diffstat (limited to 'commands')
-rw-r--r-- | commands/commandeer.go | 31 | ||||
-rw-r--r-- | commands/commands.go | 2 | ||||
-rw-r--r-- | commands/hugo_test.go | 30 | ||||
-rw-r--r-- | commands/server.go | 5 |
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) |