summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/book.js20
-rw-r--r--lib/generators/ebook.js6
-rw-r--r--lib/utils/logger.js26
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);
});