Files
electric-cherry/scripts/seed-fixture.ts
T
joshandClaude Opus 4.7 13a29e5ace Add deploy + destroy server flow; migrate to t5_<mode>_<slug>_<n> naming
Full server lifecycle management from Electric Cherry: pick game/mode/map/pluto
key in the Fleet page, EC provisions the deployment via Komodo, allocates a
port in 28960-28980, creates the 0o777 host dir, and starts the container.
Destroy button tears everything down (Komodo Destroy+Delete, rm -rf host dir,
transactional DB cleanup) and surfaces any partial-failure warnings inline.

Same phase cuts over to the new naming scheme (t5_zombie_cosmodrome_1 etc.).
Komodo entity names now match EC server names 1:1 (no more _/- transform), and
the map catalog carries friendly/slug/canonical for each of the 11 t5 zombie
maps. Server rows gain game_mode, map_slug, host_dir, config_file, game_id,
image, created_by, and destroyed_at columns for provisioning + audit.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-09-13 18:38:42 -04:00

42 lines
1.3 KiB
JavaScript

#!/usr/bin/env node
/**
* Seed a test-fixtures/zombies/ tree so the app has something to point at
* during local dev on Windows/macOS (where /root/zombies doesn't exist).
*
* Since the upload-only rework, there's no shared/scripts source dir — the
* seed just creates empty server folders. Upload scripts via the /scripts UI
* to populate them.
*
* Usage:
* npm run seed:fixture
* SERVERS_ROOT=./test-fixtures/zombies/t5 \
* BETA_ARCHIVE_DIR=./test-fixtures/zombies/beta-archive \
* npm run dev
*/
import { mkdir } from 'node:fs/promises';
import { join } from 'node:path';
const root = process.env.FIXTURE_ROOT ?? './test-fixtures/zombies';
async function main(): Promise<void> {
const t5 = join(root, 't5');
const betaArchive = join(root, 'beta-archive');
await mkdir(betaArchive, { recursive: true });
const rel = 'runtime/plutonium/storage/t5/raw/scripts/sp';
for (const name of ['t5_zombie_theater_1', 't5_zombie_cosmodrome_1', 't5_zombie_coast_1']) {
await mkdir(join(t5, name, rel), { recursive: true });
await mkdir(join(t5, name, 'logs'), { recursive: true });
}
console.log(`seeded ${root}`);
console.log(` set SERVERS_ROOT=${t5}`);
console.log(` set BETA_ARCHIVE_DIR=${betaArchive}`);
}
main().catch((err) => {
console.error(err);
process.exit(1);
});