]> git.maquefel.me Git - brevno-suite/hugo/commitdiff
Don't create the public folder unless needed
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Sun, 28 May 2023 08:07:03 +0000 (10:07 +0200)
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Sun, 28 May 2023 10:55:44 +0000 (12:55 +0200)
Fixes #11031

hugofs/fs.go
main_test.go
testscripts/commands/hugo__noconfig.txt

index 5dae3a78aecf221ffcb5d6f32b31b83a4fe7b727..ce92a626dea9f2d32b449325543b9460580c0c5f 100644 (file)
@@ -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{
index ffd700d57b74e0d49dc5d18f52deb0859b1bf64b..73b9a08384cfee20afaf1c8e348dcf4b2136ef4f 100644 (file)
@@ -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())
                        }
index c3a6f6588794b5a9d098c9a8cbf9be7c0445e518..21fbdb9a0bd8ec0290ade47a99ad4a57db168355 100644 (file)
@@ -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