Files
baiyue-firstleg/scripts/fleet-capacity-pool-ui-fixture-gray.mjs
2026-10-08 17:07:57 +08:00

27 lines
1.7 KiB
JavaScript

import { resolve } from 'node:path'
import { pathToFileURL } from 'node:url'
import { parseGrayPoolArguments } from './fleet-capacity-pool-gray.mjs'
import { privateCredentialsPath, runGrayUiFixture } from './fleet-capacity-pool-ui-fixture-test-env.mjs'
export function parseGrayUiFixtureArguments(args) {
const ordinary = []; let privateFile
for (let index = 0; index < args.length; index++) {
if (args[index] !== '--private-credentials-file') { ordinary.push(args[index]); continue }
if (privateFile !== undefined || !args[index + 1] || args[index + 1].startsWith('--')) throw Error('One explicit private credential file required')
privateFile = privateCredentialsPath(args[++index])
}
const config = parseGrayPoolArguments(ordinary)
if (config.execute && !privateFile) throw Error('Exclusive private credentials file required for GRAY UI execution')
return { ...config, privateCredentialsFile: privateFile || null }
}
if (process.argv[1] && import.meta.url === pathToFileURL(resolve(process.argv[1])).href) {
try {
const config = parseGrayUiFixtureArguments(process.argv.slice(2)), result = await runGrayUiFixture(config)
console.log(JSON.stringify(config.execute ? { success: result.success, fixtureReady: result.fixtureReady, environment: result.environment,
runtimeProfile: result.runtimeProfile, fullAcceptance: false, error: result.error, summary: result.summary,
retainedPda: result.retainedPda, output: result.output, privateCredentialsFile: result.privateCredentialsFile } : result, null, 2))
if (config.execute && !result.success) process.exitCode = 1
} catch { console.error('GRAY UI fixture preparation failed; preserve existing private credentials and report for review.'); process.exitCode = 1 }
}