summaryrefslogtreecommitdiffstats
path: root/lib/utils
diff options
context:
space:
mode:
Diffstat (limited to 'lib/utils')
-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
};