2024-03-16 23:11:48 +01:00
|
|
|
const { spawn } = require("child_process");
|
2025-11-21 14:55:28 +01:00
|
|
|
const path = require('path');
|
2024-03-16 23:11:48 +01:00
|
|
|
|
|
|
|
|
const app = process.argv[2];
|
|
|
|
|
const command = process.argv[3];
|
|
|
|
|
|
|
|
|
|
const files = {
|
2026-02-15 10:29:52 +01:00
|
|
|
all: ["zammad", "postgresql", "opensearch", "bridge-signal", "bridge-whatsapp", "bridge-deltachat"],
|
|
|
|
|
dev: ["zammad", "postgresql", "opensearch", "bridge-signal"],
|
2024-03-16 23:11:48 +01:00
|
|
|
opensearch: ["opensearch"],
|
2026-02-15 10:29:52 +01:00
|
|
|
zammad: ["zammad", "postgresql", "opensearch", "bridge-signal"],
|
|
|
|
|
signal: ["bridge-signal"],
|
2026-02-10 08:36:04 +01:00
|
|
|
whatsapp: ["bridge-whatsapp"],
|
2026-02-14 21:37:50 +01:00
|
|
|
deltachat: ["bridge-deltachat"],
|
2024-03-16 23:11:48 +01:00
|
|
|
};
|
|
|
|
|
|
2025-11-21 14:55:28 +01:00
|
|
|
|
|
|
|
|
const envFile = path.resolve(process.cwd(), '.env');
|
2024-03-16 23:11:48 +01:00
|
|
|
const finalFiles = files[app]
|
|
|
|
|
.map((file) => ['-f', `docker/compose/${file}.yml`]).flat();
|
|
|
|
|
|
2026-02-10 08:36:04 +01:00
|
|
|
// Add dev overrides for development mode
|
|
|
|
|
if (app === 'linkDev' && files[app].includes('zammad')) {
|
|
|
|
|
// Development mode configurations can be added here if needed
|
2025-11-21 14:55:28 +01:00
|
|
|
}
|
|
|
|
|
|
2026-01-28 09:01:51 +01:00
|
|
|
|
2025-11-21 14:55:28 +01:00
|
|
|
const finalCommand = command === "up" ? ["up", "-d", "--remove-orphans"] : [command];
|
|
|
|
|
const dockerCompose = spawn('docker', ['compose', '--env-file', envFile, ...finalFiles, ...finalCommand]);
|
2024-03-16 23:11:48 +01:00
|
|
|
|
|
|
|
|
dockerCompose.stdout.on('data', (data) => {
|
2025-11-21 14:55:28 +01:00
|
|
|
console.info(`${data}`);
|
2024-03-17 12:58:25 +01:00
|
|
|
});
|
|
|
|
|
|
|
|
|
|
dockerCompose.stderr.on('data', (data) => {
|
2025-11-21 14:55:28 +01:00
|
|
|
console.info(`${data}`);
|
2024-03-16 23:11:48 +01:00
|
|
|
});
|