diff options
author | Samy Pessé <samypesse@gmail.com> | 2016-05-27 09:27:11 +0200 |
---|---|---|
committer | Samy Pessé <samypesse@gmail.com> | 2016-05-27 09:27:11 +0200 |
commit | 6def174b845d6dd392c2f1ef41e94b025b774bf8 (patch) | |
tree | c2c2825fbf2e504202367c4843fa8c63e5cc4d4e /lib/plugins/installPlugins.js | |
parent | 346a18b4446060eeb53a0a697fa82f1d13ba6cd2 (diff) | |
parent | 465e8d6c0adfe69f696fafa7486541aac55298fe (diff) | |
download | gitbook-6def174b845d6dd392c2f1ef41e94b025b774bf8.zip gitbook-6def174b845d6dd392c2f1ef41e94b025b774bf8.tar.gz gitbook-6def174b845d6dd392c2f1ef41e94b025b774bf8.tar.bz2 |
Merge pull request #1334 from ryanswanson/master
Fixed two issues for handling git URLs for plugins
Diffstat (limited to 'lib/plugins/installPlugins.js')
-rw-r--r-- | lib/plugins/installPlugins.js | 67 |
1 files changed, 1 insertions, 66 deletions
diff --git a/lib/plugins/installPlugins.js b/lib/plugins/installPlugins.js index 5adae04..ed9316c 100644 --- a/lib/plugins/installPlugins.js +++ b/lib/plugins/installPlugins.js @@ -1,75 +1,10 @@ -var npm = require('npm'); var npmi = require('npmi'); -var semver = require('semver'); -var Immutable = require('immutable'); var pkg = require('../../package.json'); var DEFAULT_PLUGINS = require('../constants/defaultPlugins'); var Promise = require('../utils/promise'); -var Plugin = require('../models/plugin'); -var gitbook = require('../gitbook'); var listForBook = require('./listForBook'); - -var npmIsReady; - -/** - Initialize and prepare NPM - - @return {Promise} -*/ -function initNPM() { - if (npmIsReady) return npmIsReady; - - npmIsReady = Promise.nfcall(npm.load, { - silent: true, - loglevel: 'silent' - }); - - return npmIsReady; -} - - - -/** - Resolve a plugin to a version - - @param {Plugin} - @return {Promise<String>} -*/ -function resolveVersion(plugin) { - var npmId = Plugin.nameToNpmID(plugin.getName()); - var requiredVersion = plugin.getVersion(); - - return initNPM() - .then(function() { - return Promise.nfcall(npm.commands.view, [npmId + '@' + requiredVersion, 'engines'], true); - }) - .then(function(versions) { - versions = Immutable.Map(versions).entrySeq(); - - var result = versions - .map(function(entry) { - return { - version: entry[0], - gitbook: (entry[1].engines || {}).gitbook - }; - }) - .filter(function(v) { - return v.gitbook && gitbook.satisfies(v.gitbook); - }) - .sort(function(v1, v2) { - return semver.lt(v1.version, v2.version)? 1 : -1; - }) - .get(0); - - if (!result) { - return undefined; - } else { - return result.version; - } - }); -} - +var resolveVersion = require('./resolveVersion'); /** Install a plugin for a book |