diff options
Diffstat (limited to 'lib/utils/fs.js')
-rw-r--r-- | lib/utils/fs.js | 37 |
1 files changed, 12 insertions, 25 deletions
diff --git a/lib/utils/fs.js b/lib/utils/fs.js index 7257d91..352f57a 100644 --- a/lib/utils/fs.js +++ b/lib/utils/fs.js @@ -1,10 +1,16 @@ +var _ = require("lodash"); var Q = require("q"); var tmp = require("tmp"); var fs = require("graceful-fs"); var fsExtra = require("fs-extra"); var Ignore = require("fstream-ignore"); -var getFiles = function(path) { +var listFiles = function(path, options) { + options = _.defaults(options || {}, { + ignoreFiles: [], + ignoreRules: [] + }); + var d = Q.defer(); // Our list of files @@ -12,32 +18,11 @@ var getFiles = function(path) { var ig = Ignore({ path: path, - ignoreFiles: ['.ignore', '.gitignore', '.bookignore'] + ignoreFiles: options.ignoreFiles }); // Add extra rules to ignore common folders - ig.addIgnoreRules([ - // Skip Git stuff - '.git/', - '.gitignore', - - // Skip OS X meta data - '.DS_Store', - - // Skip stuff installed by plugins - 'node_modules', - - // Skip book outputs - '_book', - '*.pdf', - '*.epub', - '*.mobi', - - // Skip config files - '.ignore', - '.bookignore', - 'book.json', - ], '__custom_stuff'); + ig.addIgnoreRules(options.ignoreRules, '__custom_stuff'); // Push each file to our list ig.on('child', function (c) { @@ -63,6 +48,8 @@ var getFiles = function(path) { return d.promise; }; + + module.exports = { tmp: { file: function() { @@ -72,7 +59,7 @@ module.exports = { return Q.nfcall(tmp.dir.bind(tmp)).get(0) } }, - list: getFiles, + list: listFiles, stat: Q.denodeify(fs.stat), readdir: Q.denodeify(fs.readdir), readFile: Q.denodeify(fs.readFile), |