Fix file permissions in new archetype implementation
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Mon, 18 Oct 2021 17:08:19 +0000 (19:08 +0200)
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Mon, 18 Oct 2021 17:08:19 +0000 (19:08 +0200)
Closes #9057

hugolib/content_factory.go

index b94608e86adfc0725c2f9758a99032777d4be725..78583f14a27a2f32216fca49cf9ed7bf6b79fd15 100644 (file)
@@ -113,11 +113,6 @@ func (f ContentFactory) CreateContentPlaceHolder(filename string) (string, error
        filename = filepath.Clean(filename)
        _, abs := f.h.AbsProjectContentDir(filename)
 
-       contentDir := filepath.Dir(abs)
-       if err := f.h.Fs.Source.MkdirAll(contentDir, 0777); err != nil {
-               return "", err
-       }
-
        // This will be overwritten later, just write a placholder to get
        // the paths correct.
        placeholder := `---
@@ -130,11 +125,7 @@ _build:
 
 `
 
-       if err := afero.WriteFile(f.h.Fs.Source, abs, []byte(placeholder), 0777); err != nil {
-               return "", err
-       }
-
-       return abs, nil
+       return abs, afero.SafeWriteReader(f.h.Fs.Source, abs, strings.NewReader(placeholder))
 }
 
 // NewContentFactory creates a new ContentFactory for h.