diff options
Diffstat (limited to 'lib/generate/init.js')
-rw-r--r-- | lib/generate/init.js | 69 |
1 files changed, 0 insertions, 69 deletions
diff --git a/lib/generate/init.js b/lib/generate/init.js deleted file mode 100644 index 705e6e7..0000000 --- a/lib/generate/init.js +++ /dev/null @@ -1,69 +0,0 @@ -var Q = require('q'); -var _ = require('lodash'); - -var path = require('path'); - -var fs = require('./fs'); -var parse = require('../parse'); - - -// Extract paths out of a summary -function paths(summary) { - return _.reduce(summary.chapters, function(accu, chapter) { - return accu.concat( - _.filter([chapter.path].concat(_.pluck(chapter.articles, 'path'))) - ); - }, []); -} - -// Get the parent folders out of a group of files -function folders(files) { - return _.chain(files) - .map(function(file) { - return path.dirname(file); - }) - .uniq() - .value(); -} - -function initDir(dir) { - return fs.readFile(path.join(dir, 'SUMMARY.md'), 'utf8') - .then(function(src) { - // Parse summary - return parse.summary(src); - }) - .then(function(summary) { - // Extract paths from summary - return paths(summary); - }) - .then(function(paths) { - // Convert to absolute paths - return _.map(paths, function(file) { - return path.resolve(file); - }); - }) - .then(function(files) { - // Create folders - return Q.all(_.map(folders(files), function(folder) { - return fs.mkdirp(folder); - })) - .then(_.constant(files)); - }) - .then(function(files) { - // Create files that don't exist - return Q.all(_.map(files, function(file) { - return fs.exists(file) - .then(function(exists) { - if(exists) return; - return fs.writeFile(file, ''); - }); - })); - }) - .fail(function(err) { - console.error(err.stack); - }); -} - - -// Exports -module.exports = initDir; |