summaryrefslogtreecommitdiffstats
path: root/lib/utils/fs.js
diff options
context:
space:
mode:
authorSamy Pesse <samypesse@gmail.com>2016-02-13 13:56:04 +0100
committerSamy Pesse <samypesse@gmail.com>2016-02-13 13:56:04 +0100
commitd8ed34beba05bde85af420cc4e42a065021653dc (patch)
tree14a98389f20ef6cf768db851d46267701fa3d4d8 /lib/utils/fs.js
parent3154d37e41da68a16ef29ec69d8896acd9da336a (diff)
downloadgitbook-d8ed34beba05bde85af420cc4e42a065021653dc.zip
gitbook-d8ed34beba05bde85af420cc4e42a065021653dc.tar.gz
gitbook-d8ed34beba05bde85af420cc4e42a065021653dc.tar.bz2
Add method to fetch remote image with AssetsInliner
Diffstat (limited to 'lib/utils/fs.js')
-rw-r--r--lib/utils/fs.js28
1 files changed, 27 insertions, 1 deletions
diff --git a/lib/utils/fs.js b/lib/utils/fs.js
index ea9546b..bf5e51d 100644
--- a/lib/utils/fs.js
+++ b/lib/utils/fs.js
@@ -2,6 +2,8 @@ var fs = require('graceful-fs');
var mkdirp = require('mkdirp');
var destroy = require('destroy');
var tmp = require('tmp');
+var request = require('request');
+var path = require('path');
var Promise = require('./promise');
@@ -59,6 +61,28 @@ function genTmpFile(opts) {
.get(0);
}
+// Download an image
+function download(uri, dest) {
+ return writeStream(dest, request(uri));
+}
+
+// Find a filename available in a folder
+function uniqueFilename(base, filename) {
+ var ext = path.extname(filename);
+ filename = path.resolve(base, filename);
+ filename = path.join(path.dirname(filename), path.basename(filename, ext));
+
+ var _filename = filename+ext;
+
+ var i = 0;
+ while (fs.existsSync(filename)) {
+ _filename = filename + '_' + i + ext;
+ i = i + 1;
+ }
+
+ return path.relative(base, _filename);
+}
+
module.exports = {
exists: fileExists,
existsSync: fs.existsSync,
@@ -70,5 +94,7 @@ module.exports = {
readdir: Promise.nfbind(fs.readdir),
writeStream: writeStream,
copy: copyFile,
- tmpFile: genTmpFile
+ tmpFile: genTmpFile,
+ download: download,
+ uniqueFilename: uniqueFilename
};