diff options
-rw-r--r-- | lib/book.js | 26 | ||||
-rw-r--r-- | lib/utils/fs.js | 37 |
2 files changed, 37 insertions, 26 deletions
diff --git a/lib/book.js b/lib/book.js index 26cb537..6a61753 100644 --- a/lib/book.js +++ b/lib/book.js @@ -549,7 +549,31 @@ Book.prototype.statFile = function(filename) { Book.prototype.listAllFiles = function() { var that = this; - return fs.list(this.root) + return fs.list(this.root, { + ignoreFiles: ['.ignore', '.gitignore', '.bookignore'], + ignoreRules: [ + // 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', + ] + }) .then(function(_files) { that.files = _files; }); 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), |