diff options
author | Samy Pesse <samypesse@gmail.com> | 2016-02-13 13:56:04 +0100 |
---|---|---|
committer | Samy Pesse <samypesse@gmail.com> | 2016-02-13 13:56:04 +0100 |
commit | d8ed34beba05bde85af420cc4e42a065021653dc (patch) | |
tree | 14a98389f20ef6cf768db851d46267701fa3d4d8 /lib/utils/fs.js | |
parent | 3154d37e41da68a16ef29ec69d8896acd9da336a (diff) | |
download | gitbook-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.js | 28 |
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 }; |