From fa8bae3ea07e9fb53c98670f8a55d4cd84a46852 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jakub=20Sko=C5=99epa?= <jakub@skorepa.info>
Date: Wed, 19 Oct 2016 23:17:47 +0200
Subject: [PATCH] Fix race condition in imageResizer

---
 sitegin/imageResizer.js | 14 +++++++++-----
 1 file changed, 9 insertions(+), 5 deletions(-)

diff --git a/sitegin/imageResizer.js b/sitegin/imageResizer.js
index be1e4d8b..d82ce268 100644
--- a/sitegin/imageResizer.js
+++ b/sitegin/imageResizer.js
@@ -8,6 +8,8 @@ catch(e) {
   console.log('You can try to run npm install.');
   console.log('If it does not help try to make npm install lwip work.');
 }
+var mkdirp = require('mkdirp');
+var path = require('path');
 
 module.exports = function(file, targetDir, width, height) {
   if(lwip && (width || height)) {
@@ -23,11 +25,13 @@ module.exports = function(file, targetDir, width, height) {
     targetFile = path.resolve(targetDir,targetFile);
     lwip.open(file, function(err, image) {
       function doResize() {
-        image.batch()
-        .resize(width, height)
-        .writeFile(targetFile, function(err) {
-          if(err) console.log(err);
-        });
+        mkdirp(path.dirname(targetFile), function() {
+          image.batch()
+          .resize(width, height)
+          .writeFile(targetFile, function(err) {
+            if(err) console.log(err);
+          });
+        }
       }
 
       if(err) return console.log(err);
-- 
GitLab