diff options
Diffstat (limited to 'lib/generate/index.js')
-rw-r--r-- | lib/generate/index.js | 29 |
1 files changed, 19 insertions, 10 deletions
diff --git a/lib/generate/index.js b/lib/generate/index.js index bbcec0b..c680436 100644 --- a/lib/generate/index.js +++ b/lib/generate/index.js @@ -25,13 +25,23 @@ var containsFiles = function(dir, files) { .then(_.all); }; +// TEst if generator exists +var checkGenerator = function(options) { + if (!generators[options.generator]) { + return Q.reject(new Error("Invalid generator (availables are: "+_.keys(generators).join(", ")+")")); + } + return Q(); +}; // Create the generator and load plugins var loadGenerator = function(options) { - var generator = new generators[options.generator](options); + return checkGenerator() + .then(function() { + var generator = new generators[options.generator](options); - return generator.loadPlugins() - .then(_.constant(generator)); + return generator.loadPlugins() + .then(_.constant(generator)); + }); }; @@ -78,13 +88,8 @@ var generate = function(options) { return Q.reject(new Error("Need option input (book input directory)")); } - // Ensure generator exists - if (!generators[options.generator]) { - return Q.reject(new Error("Invalid generator (availables are: "+_.keys(generators).join(", "))); - } - // Check files to get folder type (book, multilanguage book or neither) - return Q() + return checkGenerator(options) // Read config file .then(function() { @@ -133,8 +138,12 @@ var generateMultiLang = function(options) { var langsSummary; options.output = options.output || path.join(options.input, "_book"); + return checkGenerator(options) + // Multi-languages book - return fs.readFile(path.join(options.input, "LANGS.md"), "utf-8") + .then(function() { + return fs.readFile(path.join(options.input, "LANGS.md"), "utf-8") + }) // Clean output folder .then(function(_langsSummary) { |