summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/index.js17
-rw-r--r--lib/plugin.js8
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
}
});
});