#!/usr/bin/env node import { pathToFileURL } from 'node:url'; import { resolve } from 'node:path'; import { rollbackRelease } from './lib/release-transaction.mjs'; async function main() { const args = process.argv.slice(2); if (args.length !== 12) throw new Error('Usage: rollback-release.mjs '); const [root, targetReleaseId, archivePath, transactionId, verifierModulePath, trustPolicyPath, smokeCommand, uid, gid, expectedCurrentManifestDigest, expectedFence, now] = args; const receipt = await rollbackRelease({ root: resolve(root), targetReleaseId, archivePath: resolve(archivePath), transactionId, verifierModulePath: resolve(verifierModulePath), trustPolicyPath: resolve(trustPolicyPath), smokeCommand: resolve(smokeCommand), uid: Number(uid), gid: Number(gid), expectedCurrentManifestDigest, expectedFence: Number(expectedFence), now }); process.stdout.write(`${JSON.stringify(receipt)}\n`); } if (process.argv[1] && import.meta.url === pathToFileURL(process.argv[1]).href) main().catch((error) => { process.stderr.write(`Release rollback failed: ${error instanceof Error ? error.message : 'unknown error'}\n`); process.exitCode = 1; });