#!/usr/bin/env node const { execSync } = require('child_process'); const os = require('os'); function isWindows() { return os.platform() === 'win32'; } function runCommand(command) { try { execSync(command, { stdio: 'inherit', shell: isWindows() ? 'cmd.exe' : 'sh' }); } catch (error) { process.exit(1); } } function main() { const args = process.argv.slice(2); const command = args[0]; if (!command) { console.error('Usage: node scripts/docker.js '); console.error('Available commands: dev, dev:build, dev:clean, dev:down, dev:up, e2e:build, e2e:clean, e2e:down, e2e:up'); process.exit(1); } const commands = { 'dev': 'docker-compose -p gridpilot-dev -f docker-compose.dev.yml up', 'dev:build': 'docker-compose -p gridpilot-dev -f docker-compose.dev.yml up --build', 'dev:clean': 'docker-compose -p gridpilot-dev -f docker-compose.dev.yml down -v --remove-orphans --volumes', 'dev:down': 'docker-compose -p gridpilot-dev -f docker-compose.dev.yml down --remove-orphans', 'dev:up': 'docker-compose -p gridpilot-dev -f docker-compose.dev.yml up', 'e2e:build': 'docker build -f apps/website/Dockerfile.e2e -t gridpilot-website-e2e . && docker-compose -f docker-compose.e2e.yml up -d --build', 'e2e:clean': 'docker-compose -f docker-compose.e2e.yml down -v --remove-orphans && docker rmi gridpilot-website-e2e 2>/dev/null || true', 'e2e:down': 'docker-compose -f docker-compose.e2e.yml down --remove-orphans', 'e2e:up': 'docker-compose -f docker-compose.e2e.yml up -d --build' }; if (!commands[command]) { console.error(`Unknown command: ${command}`); process.exit(1); } runCommand(commands[command]); } main();