summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2023-05-28 10:07:03 +0200
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2023-05-28 12:55:44 +0200
commite96cdfe9664cb38c3e16cc00cc630cf6f258d547 (patch)
treed3edecddc0b6a465fecf1d2b60a391236c541e0b
parentffdbce5787a45e8537b7a77515ca06e4deee2504 (diff)
Don't create the public folder unless needed
Fixes #11031
-rw-r--r--hugofs/fs.go6
-rw-r--r--main_test.go5
-rw-r--r--testscripts/commands/hugo__noconfig.txt6
3 files changed, 11 insertions, 6 deletions
diff --git a/hugofs/fs.go b/hugofs/fs.go
index 5dae3a78a..ce92a626d 100644
--- a/hugofs/fs.go
+++ b/hugofs/fs.go
@@ -116,13 +116,9 @@ func newFs(source, destination afero.Fs, workingDir, publishDir string) *Fs {
panic("workingDir is too short")
}
+ // If this does not exist, it will be created later.
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) {
- panic(err)
- }
-
pubFs := afero.NewBasePathFs(destination, absPublishDir)
return &Fs{
diff --git a/main_test.go b/main_test.go
index ffd700d57..73b9a0838 100644
--- a/main_test.go
+++ b/main_test.go
@@ -132,6 +132,11 @@ var commonTestScriptsParam = testscript.Params{
if err != nil {
ts.Fatalf("%v", err)
}
+ if len(fis) == 0 {
+ // To simplify empty dir checks.
+ fmt.Fprintln(ts.Stdout(), "Empty dir")
+ return
+ }
for _, fi := range fis {
fmt.Fprintf(ts.Stdout(), "%s %04o %s %s\n", fi.Mode(), fi.Mode().Perm(), fi.ModTime().Format(time.RFC3339Nano), fi.Name())
}
diff --git a/testscripts/commands/hugo__noconfig.txt b/testscripts/commands/hugo__noconfig.txt
index c3a6f6588..21fbdb9a0 100644
--- a/testscripts/commands/hugo__noconfig.txt
+++ b/testscripts/commands/hugo__noconfig.txt
@@ -1,4 +1,8 @@
+mkdir mysite
+cd mysite
! hugo
-stderr 'Unable to locate config file or config directory' \ No newline at end of file
+stderr 'Unable to locate config file or config directory'
+ls .
+stdout 'Empty dir' \ No newline at end of file