Use shared bastille list parser so IP/name/state are correct for wide bastille output. --- Build: pass | Tests: pass — 1683 passed (104 files)
34 lines
942 B
TypeScript
34 lines
942 B
TypeScript
import { hostd } from '../src/hostd/client.js';
|
|
import { parseBastilleList } from '../src/bastille-list.js';
|
|
|
|
const jailFilter = process.argv[2];
|
|
|
|
try {
|
|
const result = await hostd('bastille-list');
|
|
if (!result.ok) {
|
|
console.error('Failed to list jails:', result.error || result.output);
|
|
process.exit(1);
|
|
}
|
|
|
|
const jails = parseBastilleList(result.output);
|
|
|
|
const filtered = jailFilter
|
|
? jails.filter((j) => j.name === jailFilter)
|
|
: jails;
|
|
|
|
if (filtered.length === 0 && jailFilter) {
|
|
console.log(`No jail found: ${jailFilter}`);
|
|
process.exit(1);
|
|
}
|
|
|
|
console.log('JID\t\tState\t\tIP\t\tName');
|
|
console.log('-'.repeat(60));
|
|
for (const j of filtered) {
|
|
console.log(`${j.jid}\t\t${j.state}\t\t${j.ip}\t\t${j.name}`);
|
|
}
|
|
console.log(`\n${filtered.length} jail(s)`);
|
|
} catch (err) {
|
|
const msg = err instanceof Error ? err.message : String(err);
|
|
console.error('Error:', msg);
|
|
process.exit(1);
|
|
}
|