45 lines
1.4 KiB
JavaScript
45 lines
1.4 KiB
JavaScript
#!/usr/bin/env node
|
||
|
||
import {
|
||
ReleaseVerificationError,
|
||
formatCloudReleaseEnvironment,
|
||
verifyDaemonRelease,
|
||
} from "../release/verify-daemon-release-core.mjs";
|
||
|
||
function usage() {
|
||
return "用法: npm run release:verify -- vX.Y.Z [--json]";
|
||
}
|
||
|
||
async function main() {
|
||
const args = process.argv.slice(2);
|
||
const json = args.includes("--json");
|
||
const positional = args.filter((arg) => arg !== "--json");
|
||
if (positional.length !== 1 || args.some((arg) => arg.startsWith("--") && arg !== "--json")) {
|
||
console.error(usage());
|
||
process.exitCode = 2;
|
||
return;
|
||
}
|
||
try {
|
||
const verified = await verifyDaemonRelease({
|
||
tag: positional[0],
|
||
token: process.env.GITHUB_TOKEN?.trim() || undefined,
|
||
});
|
||
if (json) {
|
||
console.log(JSON.stringify(verified, null, 2));
|
||
return;
|
||
}
|
||
console.log(`已核验 ${verified.tag}:${verified.assets.length} 个 daemon 资产与 checksums.txt 全部一致。`);
|
||
console.log("\n将以下公开值配置到 Cloud;本工具不会自动写入环境:\n");
|
||
console.log(formatCloudReleaseEnvironment(verified));
|
||
} catch (error) {
|
||
if (error instanceof ReleaseVerificationError) {
|
||
console.error(`核验失败 [${error.code}]:${error.message}`);
|
||
} else {
|
||
console.error("核验失败 [unexpected_error]:发生未预期错误");
|
||
}
|
||
process.exitCode = 1;
|
||
}
|
||
}
|
||
|
||
await main();
|