@spalger/kibana
Version:
Kibana is an open source (Apache Licensed), browser based analytics and search dashboard for Elasticsearch. Kibana is a snap to setup and start using. Kibana strives to be easy to get started with, while also being flexible and powerful, just like Elastic
42 lines (35 loc) • 1.2 kB
JavaScript
var pluginDownloader = require('./pluginDownloader');
var pluginCleaner = require('./pluginCleaner');
var npmInstall = require('./npmInstall');
var fs = require('fs');
module.exports = {
install: install
};
function install(settings, logger) {
logger.log(`installing ${settings.package}`);
try {
fs.statSync(settings.pluginPath);
logger.error(`Plugin ${settings.package} already exists. Please remove before installing a new version.`);
process.exit(70); // eslint-disable-line no-process-exit
} catch (e) {
if (e.code !== 'ENOENT') throw e;
}
var cleaner = pluginCleaner(settings, logger);
var downloader = pluginDownloader(settings, logger);
return cleaner.cleanPrevious()
.then(function () {
return downloader.download();
})
.then(function () {
return npmInstall(settings.workingPath, logger);
})
.then(function (curious) {
fs.renameSync(settings.workingPath, settings.pluginPath);
logger.log('Plugin installation complete!');
})
.catch(function (e) {
logger.error(`Plugin installation was unsuccessful due to error "${e.message}"`);
cleaner.cleanError();
process.exit(70); // eslint-disable-line no-process-exit
});
}