summaryrefslogtreecommitdiffstats
path: root/lib/generate/fs.js
diff options
context:
space:
mode:
authorSamy Pessé <samypesse@gmail.com>2014-03-31 22:45:45 -0700
committerSamy Pessé <samypesse@gmail.com>2014-03-31 22:45:45 -0700
commitaefbfaf057da43f57afa1e8a34bdba1ddb2d0a73 (patch)
treedbc2a1d6e2901c7771e666ca1b1778c9ac48cb11 /lib/generate/fs.js
parent0f0128fa493ca6227498b5db529753ab632b2e5a (diff)
downloadgitbook-aefbfaf057da43f57afa1e8a34bdba1ddb2d0a73.zip
gitbook-aefbfaf057da43f57afa1e8a34bdba1ddb2d0a73.tar.gz
gitbook-aefbfaf057da43f57afa1e8a34bdba1ddb2d0a73.tar.bz2
Move getFiles to fs module
Diffstat (limited to 'lib/generate/fs.js')
-rw-r--r--lib/generate/fs.js34
1 files changed, 34 insertions, 0 deletions
diff --git a/lib/generate/fs.js b/lib/generate/fs.js
index f7ae772..c43225e 100644
--- a/lib/generate/fs.js
+++ b/lib/generate/fs.js
@@ -1,8 +1,42 @@
var Q = require("q");
var fs = require("fs");
var fsExtra = require("fs-extra");
+var Ignore = require("fstream-ignore");
+
+var getFiles = function(path) {
+ var d = Q.defer();
+
+ // Our list of files
+ var files = [];
+
+ var ig = Ignore({
+ path: path,
+ ignoreFiles: ['.ignore', '.gitignore']
+ });
+
+ // Add extra rules to ignore common folders
+ ig.addIgnoreRules([
+ '.git/'
+ ], '__custom_stuff');
+
+ // Push each file to our list
+ ig.on('child', function (c) {
+ files.push(
+ c.path.substr(c.root.path.length + 1) + (c.props.Directory === true ? '/' : '')
+ );
+ });
+
+ ig.on('end', function() {
+ d.resolve(files);
+ });
+
+ ig.on('error', d.reject);
+
+ return d.promise;
+}
module.exports = {
+ list: getFiles,
readFile: Q.denodeify(fs.readFile),
writeFile: Q.denodeify(fs.writeFile),
mkdirp: Q.denodeify(fsExtra.mkdirp),