()
| 296 | } |
| 297 | |
| 298 | function checkDockerCompose() { |
| 299 | const os = getPlatform() |
| 300 | const instructions = dockerCompose[os] |
| 301 | const displayName = dockerCompose.name |
| 302 | |
| 303 | // Docker Compose is included with Docker Desktop (macOS/Windows) and Docker Engine (Linux) |
| 304 | // Just verify it's available |
| 305 | if (checkToolExists('docker', 'docker compose version')) { |
| 306 | try { |
| 307 | const version = execSync('docker compose version', { encoding: 'utf-8' }).trim() |
| 308 | console.log(`✅ ${displayName} is available (${version})`) |
| 309 | return true |
| 310 | } catch { |
| 311 | console.log(`✅ ${displayName} is available`) |
| 312 | return true |
| 313 | } |
| 314 | } |
| 315 | |
| 316 | console.error(`\n⚠️ ${displayName} is not available.`) |
| 317 | console.error(` ${displayName} should be included with Docker installation.`) |
| 318 | if (instructions.manual) { |
| 319 | console.error(` See: ${instructions.manual}`) |
| 320 | } |
| 321 | return false |
| 322 | } |
| 323 | |
| 324 | function installSupabase() { |
| 325 | const os = getPlatform() |
no test coverage detected