diff options
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 }; |