summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSamy Pessé <samypesse@gmail.com>2015-09-01 17:38:33 +0200
committerSamy Pessé <samypesse@gmail.com>2015-09-01 17:38:33 +0200
commitcf601d97ad3d886c9f2360e29e873cc231918d5d (patch)
tree7aa7d683eb60b8fdcac10903dbd71b61117f7f85
parent80edad53d49886b6dadaa380e91a89a5952ed967 (diff)
downloadgitbook-cf601d97ad3d886c9f2360e29e873cc231918d5d.zip
gitbook-cf601d97ad3d886c9f2360e29e873cc231918d5d.tar.gz
gitbook-cf601d97ad3d886c9f2360e29e873cc231918d5d.tar.bz2
Improve error handling for failed image download
-rw-r--r--lib/utils/fs.js4
-rw-r--r--lib/utils/page.js8
2 files changed, 11 insertions, 1 deletions
diff --git a/lib/utils/fs.js b/lib/utils/fs.js
index 98a3a87..176a215 100644
--- a/lib/utils/fs.js
+++ b/lib/utils/fs.js
@@ -64,6 +64,10 @@ function writeStream(filename, st) {
d.reject(err);
});
+ st.on('error', function(err) {
+ d.reject(err);
+ });
+
st.pipe(wstream);
return d.promise;
diff --git a/lib/utils/page.js b/lib/utils/page.js
index f24013f..fde2eaa 100644
--- a/lib/utils/page.js
+++ b/lib/utils/page.js
@@ -285,7 +285,13 @@ function convertImages(images, options) {
if (!image.origin && !_.contains(downloaded, image.origin)) return;
options.book.log.debug("download image", image.origin, "...");
downloaded.push(image.origin);
- return options.book.log.debug.promise(fs.writeStream(imgin, request(image.origin)));
+ return options.book.log.debug.promise(fs.writeStream(imgin, request(image.origin)))
+ .fail(function(err) {
+ if (!_.isError(err)) err = new Error(err);
+
+ err.message = 'Fail downloading '+image.origin+': '+err.message;
+ throw err;
+ });
})
// Write svg if content