({ log })
| 284 | } |
| 285 | |
| 286 | export async function denStackDown({ log }) { |
| 287 | const apiPid = await readPidState("den-api.pid"); |
| 288 | if (apiPid) { |
| 289 | try { process.kill(Number(apiPid)); log(`Stopped den-api (pid ${apiPid})`); } catch { /* already gone */ } |
| 290 | } |
| 291 | const appPid = await readPidState("app.pid"); |
| 292 | if (appPid) { |
| 293 | try { process.kill(-Number(appPid)); } catch { /* group gone */ } |
| 294 | try { process.kill(Number(appPid)); log(`Stopped dev app (pid ${appPid})`); } catch { /* already gone */ } |
| 295 | } |
| 296 | const bootstrapPath = await readPidState("bootstrap.path"); |
| 297 | if (bootstrapPath) { |
| 298 | await rm(bootstrapPath, { force: true }); |
| 299 | log("Removed dev desktop bootstrap override"); |
| 300 | } |
| 301 | try { |
| 302 | await run("docker", [...COMPOSE_ARGS, "down"]); |
| 303 | log("MySQL compose project stopped (volume kept)"); |
| 304 | } catch { |
| 305 | log("Docker compose down skipped (docker unavailable?)"); |
| 306 | } |
| 307 | await rm(STATE_DIR, { recursive: true, force: true }); |
| 308 | } |
no test coverage detected