diff options
author | Samy Pessé <samypesse@gmail.com> | 2015-01-26 21:59:55 +0100 |
---|---|---|
committer | Samy Pessé <samypesse@gmail.com> | 2015-01-26 21:59:55 +0100 |
commit | 5cee07ee8c819a4609dc7d6660586a05e2540f87 (patch) | |
tree | fab3b0c67d365de98165d99556e2fabef657d11c /lib/utils/fs.js | |
parent | 4250f559b0a2047fb172248dca0bbd0ab3b9c6fb (diff) | |
download | gitbook-5cee07ee8c819a4609dc7d6660586a05e2540f87.zip gitbook-5cee07ee8c819a4609dc7d6660586a05e2540f87.tar.gz gitbook-5cee07ee8c819a4609dc7d6660586a05e2540f87.tar.bz2 |
fs.list take option for files to ignores
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), |