var path = require('path'); var Q = require('q'); var _ = require('lodash'); var fs = require('fs'); var utils = require('./utils'); var generate = require("../lib/generate"); var parse = require("../lib/parse"); var generators = require("../lib/generate").generators; var buildCommand = function(command) { return command .option('-o, --output ', 'Path to output directory, defaults to ./_book') .option('-f, --format ', 'Change generation format, defaults to site, availables are: '+_.keys(generators).join(", ")) .option('--config ', 'Configuration file to use, defualt to book.json') }; var makeBuildFunc = function(converter) { return function(dir, options) { dir = dir || process.cwd(); outputDir = options.output; console.log('Starting build ...'); return converter( _.extend({}, options || {}, { input: dir, output: outputDir, generator: options.format, configFile: options.config }) ) .then(function(output) { console.log("Successfuly built !"); return output; }, utils.logError); }; }; module.exports = { folder: makeBuildFunc(generate.folder), file: makeBuildFunc(generate.file), command: buildCommand };