const { spawn } = require("child_process"); const path = require('path'); const app = process.argv[2]; const command = process.argv[3]; const files = { all: ["zammad", "postgresql", "opensearch", "bridge-signal", "bridge-whatsapp", "bridge-deltachat"], dev: ["zammad", "postgresql", "opensearch", "bridge-signal"], opensearch: ["opensearch"], zammad: ["zammad", "postgresql", "opensearch", "bridge-signal"], signal: ["bridge-signal"], whatsapp: ["bridge-whatsapp"], deltachat: ["bridge-deltachat"], }; const envFile = path.resolve(process.cwd(), '.env'); const finalFiles = files[app] .map((file) => ['-f', `docker/compose/${file}.yml`]).flat(); // Add dev overrides for development mode if (app === 'linkDev' && files[app].includes('zammad')) { // Development mode configurations can be added here if needed } const finalCommand = command === "up" ? ["up", "-d", "--remove-orphans"] : [command]; const dockerCompose = spawn('docker', ['compose', '--env-file', envFile, ...finalFiles, ...finalCommand]); dockerCompose.stdout.on('data', (data) => { console.info(`${data}`); }); dockerCompose.stderr.on('data', (data) => { console.info(`${data}`); });