diff options
author | Bjørn Erik Pedersen <[email protected]> | 2022-04-17 10:35:01 +0200 |
---|---|---|
committer | Bjørn Erik Pedersen <[email protected]> | 2022-04-17 10:35:01 +0200 |
commit | 6c35a1a9eacf2aa86a11ecd31c4022ce330b2f16 (patch) | |
tree | c390750370d67e646446bdc64c22b430aeb1292c | |
parent | 363bc907c0ab4b6989bada2e1ffca4ef17d7b8a4 (diff) | |
download | hugo-6c35a1a9eacf2aa86a11ecd31c4022ce330b2f16.tar.gz hugo-6c35a1a9eacf2aa86a11ecd31c4022ce330b2f16.zip |
Revert "Fix PostProcess regression for hugo server"
This reverts commit 4deb5c60661bdb1d686664f0207f45517a086f29.
-rw-r--r-- | commands/commandeer.go | 28 | ||||
-rw-r--r-- | commands/commands_test.go | 4 | ||||
-rw-r--r-- | commands/server_test.go | 46 | ||||
-rw-r--r-- | hugofs/fs.go | 26 |
4 files changed, 38 insertions, 66 deletions
diff --git a/commands/commandeer.go b/commands/commandeer.go index c42de5d11..1162a4b70 100644 --- a/commands/commandeer.go +++ b/commands/commandeer.go @@ -395,23 +395,23 @@ func (c *commandeer) loadConfig() error { } c.fsCreate.Do(func() { - // Assume both source and destination are using same filesystem. - fs := hugofs.NewFromSourceAndDestination(sourceFs, sourceFs, config) + fs := hugofs.NewFrom(sourceFs, config) if c.publishDirFs != nil { // Need to reuse the destination on server rebuilds. fs.PublishDir = c.publishDirFs fs.PublishDirServer = c.publishDirServerFs } else { - if c.renderStaticToDisk { - publishDirStatic := config.GetString("publishDirStatic") - workingDir := config.GetString("workingDir") - absPublishDirStatic := paths.AbsPathify(workingDir, publishDirStatic) + publishDir := config.GetString("publishDir") + publishDirStatic := config.GetString("publishDirStatic") + workingDir := config.GetString("workingDir") + absPublishDir := paths.AbsPathify(workingDir, publishDir) + absPublishDirStatic := paths.AbsPathify(workingDir, publishDirStatic) - fs = hugofs.NewFromSourceAndDestination(sourceFs, afero.NewMemMapFs(), config) - // Writes the dynamic output to memory, + if c.renderStaticToDisk { + // Writes the dynamic output oton memory, // while serve others directly from /public on disk. - dynamicFs := fs.PublishDir + dynamicFs := afero.NewMemMapFs() staticFs := afero.NewBasePathFs(afero.NewOsFs(), absPublishDirStatic) // Serve from both the static and dynamic fs, @@ -427,10 +427,18 @@ func (c *commandeer) loadConfig() error { }, }, ) + fs.PublishDir = dynamicFs fs.PublishDirStatic = staticFs } else if createMemFs { // Hugo writes the output to memory instead of the disk. - fs = hugofs.NewFromSourceAndDestination(sourceFs, afero.NewMemMapFs(), config) + fs.PublishDir = new(afero.MemMapFs) + fs.PublishDirServer = fs.PublishDir + fs.PublishDirStatic = fs.PublishDir + } else { + // Write everything to disk. + fs.PublishDir = afero.NewBasePathFs(afero.NewOsFs(), absPublishDir) + fs.PublishDirServer = fs.PublishDir + fs.PublishDirStatic = fs.PublishDir } } diff --git a/commands/commands_test.go b/commands/commands_test.go index 97d81ec6e..e3ec7bd99 100644 --- a/commands/commands_test.go +++ b/commands/commands_test.go @@ -375,10 +375,6 @@ Single: {{ .Title }} List: {{ .Title }} Environment: {{ hugo.Environment }} -For issue 9788: -{{ $foo :="abc" | resources.FromString "foo.css" | minify | resources.PostProcess }} -PostProcess: {{ $foo.RelPermalink }} - `) return dir diff --git a/commands/server_test.go b/commands/server_test.go index c2aa0dfd5..ea50afd94 100644 --- a/commands/server_test.go +++ b/commands/server_test.go @@ -31,6 +31,16 @@ import ( qt "github.com/frankban/quicktest" ) +func TestServer(t *testing.T) { + c := qt.New(t) + + r := runServerTest(c, true, "") + + c.Assert(r.err, qt.IsNil) + c.Assert(r.homeContent, qt.Contains, "List: Hugo Commands") + c.Assert(r.homeContent, qt.Contains, "Environment: development") +} + // Issue 9518 func TestServerPanicOnConfigError(t *testing.T) { c := qt.New(t) @@ -91,42 +101,6 @@ baseURL="https://example.org" } -func TestServerBugs(t *testing.T) { - c := qt.New(t) - - for _, test := range []struct { - name string - flag string - assert func(c *qt.C, r serverTestResult) - }{ - // Issue 9788 - {"PostProcess, memory", "", func(c *qt.C, r serverTestResult) { - c.Assert(r.err, qt.IsNil) - c.Assert(r.homeContent, qt.Contains, "PostProcess: /foo.min.css") - }}, - {"PostProcess, disk", "--renderToDisk", func(c *qt.C, r serverTestResult) { - c.Assert(r.err, qt.IsNil) - c.Assert(r.homeContent, qt.Contains, "PostProcess: /foo.min.css") - }}, - } { - c.Run(test.name, func(c *qt.C) { - config := ` -baseURL="https://example.org" -` - - var args []string - if test.flag != "" { - args = strings.Split(test.flag, "=") - } - r := runServerTest(c, true, config, args...) - test.assert(c, r) - - }) - - } - -} - type serverTestResult struct { err error homeContent string diff --git a/hugofs/fs.go b/hugofs/fs.go index 63c25a4c0..436387f13 100644 --- a/hugofs/fs.go +++ b/hugofs/fs.go @@ -65,7 +65,7 @@ type Fs struct { // as source and destination file systems. func NewDefault(cfg config.Provider) *Fs { fs := Os - return newFs(fs, fs, cfg) + return newFs(fs, cfg) } // NewMem creates a new Fs with the MemMapFs @@ -73,23 +73,17 @@ func NewDefault(cfg config.Provider) *Fs { // Useful for testing. func NewMem(cfg config.Provider) *Fs { fs := &afero.MemMapFs{} - return newFs(fs, fs, cfg) + return newFs(fs, cfg) } // NewFrom creates a new Fs based on the provided Afero Fs // as source and destination file systems. // Useful for testing. func NewFrom(fs afero.Fs, cfg config.Provider) *Fs { - return newFs(fs, fs, cfg) + return newFs(fs, cfg) } -// NewFrom creates a new Fs based on the provided Afero Fss -// as the source and destination file systems. -func NewFromSourceAndDestination(source, destination afero.Fs, cfg config.Provider) *Fs { - return newFs(source, destination, cfg) -} - -func newFs(source, destination afero.Fs, cfg config.Provider) *Fs { +func newFs(base afero.Fs, cfg config.Provider) *Fs { workingDir := cfg.GetString("workingDir") publishDir := cfg.GetString("publishDir") if publishDir == "" { @@ -97,27 +91,27 @@ func newFs(source, destination afero.Fs, cfg config.Provider) *Fs { } // Sanity check - if IsOsFs(source) && len(workingDir) < 2 { + if IsOsFs(base) && len(workingDir) < 2 { panic("workingDir is too short") } absPublishDir := paths.AbsPathify(workingDir, publishDir) // Make sure we always have the /public folder ready to use. - if err := source.MkdirAll(absPublishDir, 0777); err != nil && !os.IsExist(err) { + if err := base.MkdirAll(absPublishDir, 0777); err != nil && !os.IsExist(err) { panic(err) } - pubFs := afero.NewBasePathFs(destination, absPublishDir) + pubFs := afero.NewBasePathFs(base, absPublishDir) return &Fs{ - Source: source, + Source: base, PublishDir: pubFs, PublishDirServer: pubFs, PublishDirStatic: pubFs, Os: &afero.OsFs{}, - WorkingDirReadOnly: getWorkingDirFsReadOnly(source, workingDir), - WorkingDirWritable: getWorkingDirFsWritable(source, workingDir), + WorkingDirReadOnly: getWorkingDirFsReadOnly(base, workingDir), + WorkingDirWritable: getWorkingDirFsWritable(base, workingDir), } } |