Allow providing local plugins to Docker image (#6243)

* Allow installing local and remote plugins simultaneously

* Add ETHERPAD_LOCAL_PLUGINS arg to Dockerfile
This commit is contained in:
Denys Halenok 2024-03-19 12:51:11 +01:00 committed by GitHub
parent bb8544d564
commit bd2198a70e
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 30 additions and 16 deletions

View file

@ -10,18 +10,19 @@ if (process.argv.length === 2) {
process.exit(1);
}
let plugins = process.argv.slice(2)
let installFromPath = false;
let args = process.argv.slice(2)
const thirdOptPlug = plugins[0]
let registryPlugins: string[] = [];
let localPlugins: string[] = [];
console.log("Third option: ", thirdOptPlug)
if (thirdOptPlug && thirdOptPlug.includes('path')) {
installFromPath = true
plugins.splice(plugins.indexOf('--path'), 1);
if (args.indexOf('--path') !== -1) {
const indexToSplit = args.indexOf('--path');
registryPlugins = args.slice(0, indexToSplit);
localPlugins = args.slice(indexToSplit + 1);
} else {
registryPlugins = args;
}
const persistInstalledPlugins = async () => {
const plugins:PackageData[] = []
const installedPlugins = {plugins: plugins};
@ -36,15 +37,15 @@ const persistInstalledPlugins = async () => {
};
async function run() {
for (const plugin of plugins) {
if(installFromPath) {
console.log(`Installing plugin from path: ${plugin}`);
await linkInstaller.installFromPath(plugin);
continue;
}
for (const plugin of registryPlugins) {
console.log(`Installing plugin from registry: ${plugin}`)
await linkInstaller.installPlugin(plugin);
}
for (const plugin of localPlugins) {
console.log(`Installing plugin from path: ${plugin}`);
await linkInstaller.installFromPath(plugin);
}
}
(async () => {