hugo

Unnamed repository; edit this file 'description' to name the repository.

git clone git://git.shimmy1996.com/hugo.git
commit 196da49c9d906fbae6d389fdd32b80c27cb38de4
parent 2aa4c009eec3375f56740f90917f5bee6a72c7f5
Author: Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Date:   Wed,  3 Jan 2018 10:28:16 +0100

resource: Handle publish to /public on fresh build

Fixes #4213

Diffstat:
Mresource/image.go | 13++++++++++++-
1 file changed, 12 insertions(+), 1 deletion(-)
diff --git a/resource/image.go b/resource/image.go
@@ -450,9 +450,20 @@ func (i *Image) encodeToDestinations(img image.Image, conf imageConfig, resource
 	target := filepath.Join(i.absPublishDir, filename)
 
 	file1, err := i.spec.Fs.Destination.Create(target)
-	if err != nil {
+	if err != nil && os.IsNotExist(err) {
+		// When called from shortcodes, the target directory may not exist yet.
+		// See https://github.com/gohugoio/hugo/issues/4202
+		if err = i.spec.Fs.Destination.MkdirAll(filepath.Dir(target), os.FileMode(0755)); err != nil {
+			return err
+		}
+		file1, err = i.spec.Fs.Destination.Create(target)
+		if err != nil {
+			return err
+		}
+	} else if err != nil {
 		return err
 	}
+
 	defer file1.Close()
 
 	var w io.Writer