diff options
author | Samy Pessé <samypesse@gmail.com> | 2014-06-02 11:32:08 +0200 |
---|---|---|
committer | Samy Pessé <samypesse@gmail.com> | 2014-06-02 11:32:09 +0200 |
commit | f85c5a6498b0886b9dbc42b9f7ee1ef62e167fc6 (patch) | |
tree | 4abcd1639b92ff51b1feff456d8f912c00e21782 /lib/generate | |
parent | 32eafefc458172f265e368eb22e50d016917f34e (diff) | |
download | gitbook-f85c5a6498b0886b9dbc42b9f7ee1ef62e167fc6.zip gitbook-f85c5a6498b0886b9dbc42b9f7ee1ef62e167fc6.tar.gz gitbook-f85c5a6498b0886b9dbc42b9f7ee1ef62e167fc6.tar.bz2 |
Add error message when generator is invalid
Fixes #276, #277
Diffstat (limited to 'lib/generate')
-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) { |