import { $ } from 'bun'; const service = process.argv[2]; if (!service || !['server', 'bridge'].includes(service)) { console.error('Usage: bun run docker:release '); console.error('Example: bun run docker:release server'); console.error(' bun run docker:release bridge'); process.exit(1); } const registry = 'ghcr.io/lone-cloud'; const config = service === 'server' ? { name: 'sup-server', path: './server' } : { name: 'sup-proton-bridge', path: './proton-bridge' }; try { const packageJson = await Bun.file(`${config.path}/package.json`).json(); const version = `v${packageJson.version}`; console.log(`šŸš€ Releasing ${config.name} ${version}...`); const fullName = `${registry}/${config.name}`; console.log(`\nšŸ“¦ Building ${config.name}...`); await $`docker build -t ${fullName}:${version} -t ${fullName}:latest ${config.path}`; console.log(`āœ“ Built ${config.name}`); console.log(`šŸ“¤ Pushing ${fullName}:${version}...`); await $`docker push ${fullName}:${version}`; console.log(`āœ“ Pushed ${fullName}:${version}`); console.log(`šŸ“¤ Pushing ${fullName}:latest...`); await $`docker push ${fullName}:latest`; console.log(`āœ“ Pushed ${fullName}:latest`); console.log(` ✨ ${config.name} ${version} released successfully! Images pushed: - ${fullName}:${version} - ${fullName}:latest Users can now pull with: docker compose pull `); } catch (error) { console.error('āŒ Release failed:', error); process.exit(1); }