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>
42 lines
1.3 KiB
JavaScript
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);
|
|
});
|