diff options
-rw-r--r-- | lib/index.js | 17 | ||||
-rw-r--r-- | lib/plugin.js | 8 |
2 files changed, 20 insertions, 5 deletions
diff --git a/lib/index.js b/lib/index.js index 8b7a390..a71d325 100644 --- a/lib/index.js +++ b/lib/index.js @@ -3,6 +3,7 @@ var _ = require("lodash"); var path = require("path"); var Book = require("./book"); +var Plugin = require("./plugin"); module.exports = { Book: Book, @@ -10,7 +11,7 @@ module.exports = { commands: [ { name: "build", - description: "Build a book", + description: "build a book", exec: function(args, kwargs) { var input = args[0] || process.cwd(); var output = args[1] || path.join(input, "_book"); @@ -24,6 +25,20 @@ module.exports = { return book.generate(); }); } + }, + { + name: "install", + description: "install plugins dependencies", + exec: function(args, kwargs) { + var input = args[0] || process.cwd(); + + var book = new Book(input); + + return book.config.load() + .then(function() { + return Plugin.install(input, book.options.plugins); + }); + } } ] }; diff --git a/lib/plugin.js b/lib/plugin.js index c2cc668..d1ec08d 100644 --- a/lib/plugin.js +++ b/lib/plugin.js @@ -156,9 +156,9 @@ Plugin.prototype.copyAssets = function(out, options) { // Install a list of plugin -Plugin.install = function(options) { +Plugin.install = function(root, plugins) { // Normalize list of plugins - var plugins = Plugin.normalizeList(options.plugins); + plugins = Plugin.normalizeList(plugins); // Install plugins one by one return _.reduce(plugins, function(prev, plugin) { @@ -168,11 +168,11 @@ Plugin.install = function(options) { return Q.nfcall(npmi, { 'name': fullname, 'version': plugin.version, - 'path': options.input, + 'path': root, 'npmLoad': { 'loglevel': 'silent', 'loaded': false, - 'prefix': options.input + 'prefix': root } }); }); |