From f023a19c3eeeea2b014b47fae522a62eab320048 Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Fri, 5 Jul 2019 15:28:49 +0200 Subject: WIP plugins: install/uninstall --- scripts/plugin/install.ts | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100755 scripts/plugin/install.ts (limited to 'scripts') diff --git a/scripts/plugin/install.ts b/scripts/plugin/install.ts new file mode 100755 index 000000000..8e9c9897f --- /dev/null +++ b/scripts/plugin/install.ts @@ -0,0 +1,39 @@ +import { initDatabaseModels } from '../../server/initializers/database' +import * as program from 'commander' +import { PluginManager } from '../../server/lib/plugins/plugin-manager' +import { isAbsolute } from 'path' + +program + .option('-n, --pluginName [pluginName]', 'Plugin name to install') + .option('-v, --pluginVersion [pluginVersion]', 'Plugin version to install') + .option('-p, --pluginPath [pluginPath]', 'Path of the plugin you want to install') + .parse(process.argv) + +if (!program['pluginName'] && !program['pluginPath']) { + console.error('You need to specify a plugin name with the desired version, or a plugin path.') + process.exit(-1) +} + +if (program['pluginName'] && !program['pluginVersion']) { + console.error('You need to specify a the version of the plugin you want to install.') + process.exit(-1) +} + +if (program['pluginPath'] && !isAbsolute(program['pluginPath'])) { + console.error('Plugin path should be absolute.') + process.exit(-1) +} + +run() + .then(() => process.exit(0)) + .catch(err => { + console.error(err) + process.exit(-1) + }) + +async function run () { + await initDatabaseModels(true) + + const toInstall = program['pluginName'] || program['pluginPath'] + await PluginManager.Instance.install(toInstall, program['pluginVersion'], !!program['pluginPath']) +} -- cgit v1.2.3