From b5f919ac8eb2a1c20e26582fdfd377d687710d8f Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Fri, 12 Jul 2019 11:39:58 +0200 Subject: WIP plugins: update plugin --- scripts/plugin/install.ts | 39 +++++++++++++++++++++++++++++++++++++++ scripts/plugin/uninstall.ts | 26 ++++++++++++++++++++++++++ 2 files changed, 65 insertions(+) create mode 100755 scripts/plugin/install.ts create mode 100755 scripts/plugin/uninstall.ts (limited to 'scripts/plugin') diff --git a/scripts/plugin/install.ts b/scripts/plugin/install.ts new file mode 100755 index 000000000..1725cbeb6 --- /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, --plugin-name [pluginName]', 'Plugin name to install') + .option('-v, --plugin-version [pluginVersion]', 'Plugin version to install') + .option('-p, --plugin-path [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']) +} diff --git a/scripts/plugin/uninstall.ts b/scripts/plugin/uninstall.ts new file mode 100755 index 000000000..b5e1ddea2 --- /dev/null +++ b/scripts/plugin/uninstall.ts @@ -0,0 +1,26 @@ +import { initDatabaseModels } from '../../server/initializers/database' +import * as program from 'commander' +import { PluginManager } from '../../server/lib/plugins/plugin-manager' + +program + .option('-n, --npm-name [npmName]', 'Package name to install') + .parse(process.argv) + +if (!program['npmName']) { + console.error('You need to specify the plugin name.') + process.exit(-1) +} + +run() + .then(() => process.exit(0)) + .catch(err => { + console.error(err) + process.exit(-1) + }) + +async function run () { + await initDatabaseModels(true) + + const toUninstall = program['npmName'] + await PluginManager.Instance.uninstall(toUninstall) +} -- cgit v1.2.3