diff options
-rw-r--r-- | lib/book.js | 20 | ||||
-rw-r--r-- | lib/generators/ebook.js | 6 | ||||
-rw-r--r-- | lib/utils/logger.js | 26 |
3 files changed, 39 insertions, 13 deletions
diff --git a/lib/book.js b/lib/book.js index 2e0ec19..26cb537 100644 --- a/lib/book.js +++ b/lib/book.js @@ -107,9 +107,7 @@ Book.prototype.parse = function() { var that = this; var multilingual = false; - - that.log.debug.ln("start parsing configuration"); - return this.config.load() + return this.parseConfig() .then(function() { return that.parsePlugins(); @@ -311,6 +309,17 @@ Book.prototype.generateFile = function(output, options) { }); }; +// Parse configuration +Book.prototype.parseConfig = function() { + var that = this; + + that.log.info("loading book configuration....") + return that.config.load() + .then(function() { + that.log.info.ok(); + }); +}; + // Parse list of plugins Book.prototype.parsePlugins = function() { var that = this; @@ -319,7 +328,7 @@ Book.prototype.parsePlugins = function() { // Load plugins that.plugins = _.map(that.options.plugins, function(plugin) { var plugin = new Plugin(that, plugin.name); - that.log.info("Load plugin", plugin.name, "...."); + that.log.info("load plugin", plugin.name, "...."); if (!plugin.isValid()) { that.log.info.fail(); @@ -330,8 +339,9 @@ Book.prototype.parsePlugins = function() { return plugin; }); - that.log.debug.ln("load plugins:", that.plugins.length, "loaded, ", failed.length, "failed"); if (_.size(failed) > 0) return Q.reject(new Error("Error loading plugins: "+failed.join(",")+". Run 'gitbook install' to install plugins from NPM.")); + + that.log.info.ok(that.plugins.length+" plugins loaded"); return Q(); }; diff --git a/lib/generators/ebook.js b/lib/generators/ebook.js index 1bad718..58e3f3f 100644 --- a/lib/generators/ebook.js +++ b/lib/generators/ebook.js @@ -98,9 +98,11 @@ Generator.prototype.finish = function() { stringUtils.optionsToShellArgs(_options) ].join(" "); - that.book.log.info.ln("start conversion to", that.ebookFormat); + that.book.log.info("start conversion to", that.ebookFormat, "...."); exec(command, function (error, stdout, stderr) { if (error) { + that.book.log.info.fail(); + if (error.code == 127) { error.message = "Need to install ebook-convert from Calibre"; } else { @@ -108,6 +110,8 @@ Generator.prototype.finish = function() { } return d.reject(error); } + + that.book.log.info.ok(); d.resolve(); }); diff --git a/lib/utils/logger.js b/lib/utils/logger.js index 6be4ea7..927048b 100644 --- a/lib/utils/logger.js +++ b/lib/utils/logger.js @@ -28,6 +28,11 @@ module.exports = function(_write, logLevel) { return _write(msg); }; + // Format a message + logger.format = function() { + return util.format.apply(util, arguments); + }; + // Write a line logger.writeLn = function(msg) { return this.write((msg || "")+"\n"); @@ -39,7 +44,7 @@ module.exports = function(_write, logLevel) { var levelKey = _.findKey(LEVELS, function(v) { return v == level; }); var args = Array.prototype.slice.apply(arguments, [1]); - var msg = util.format.apply(util, args); + var msg = logger.format.apply(logger, args); if (lastChar == '\n') { msg = COLORS[levelKey](levelKey.toLowerCase()+":")+" "+msg; @@ -47,10 +52,21 @@ module.exports = function(_write, logLevel) { return logger.write(msg); }; + logger.logLn = function() { + var args = Array.prototype.slice.apply(arguments); + args.push("\n"); + logger.log.apply(logger, args); + }; // Write a OK logger.ok = function(level) { - return logger.log(level, color.green("OK")+"\n"); + var args = Array.prototype.slice.apply(arguments, [1]); + var msg = logger.format.apply(logger, args); + if (arguments.length > 1) { + logger.logLn(level, color.green('>> ') + msg.trim().replace(/\n/g, color.green('\n>> '))); + } else { + logger.logLn(level, color.green("OK")); + } }; // Write an "FAIL" @@ -62,11 +78,7 @@ module.exports = function(_write, logLevel) { levelKey = levelKey.toLowerCase(); logger[levelKey] = _.partial(logger.log, level); - logger[levelKey].ln = function() { - var args = Array.prototype.slice.apply(arguments); - args.push("\n"); - logger[levelKey].apply(logger, args); - }; + logger[levelKey].ln = _.partial(logger.logLn, level); logger[levelKey].ok = _.partial(logger.ok, level); logger[levelKey].fail = _.partial(logger.fail, level); }); |