Lines 38-78javascript
38 else if (arg === "--upload" || arg === "--publish") opts.upload = true;
39 else if (arg === "--no-upload" || arg === "--package") opts.upload = false;
40 else if (arg === "--install") opts.install = true;
41 else if (arg === "--dry-run") opts.dryRun = true;
42 else if (arg === "--skip-checks") opts.skipChecks = true;
43 else if (arg === "--skip-hardening") opts.skipHardening = true;
44 else if (arg === "--doctor") opts.doctor = true;
45 else if (arg === "--tier") opts.tier = args[++i];
46 else if (arg.startsWith("--tier=")) opts.tier = arg.slice("--tier=".length);
47 else if (arg === "--version") {
51 else if (arg === "-h" || arg === "--help") usage(0);
52 else usage(2, `unknown argument: ${arg}`);
55if (!opts.doctor && !opts.tier) usage(2, "--tier is required (patch|update)");
56if (opts.tier && !TIERS.has(opts.tier)) usage(2, `invalid --tier: ${opts.tier} (expected patch|update)`);
58const configPath = path.resolve(opts.config);
59const config = (await import(pathToFileURL(configPath))).default;
60if (!config) usage(2, `config did not export default: ${configPath}`);
MediumDynamic Require
Package source references dynamic require/import behavior.
release.mjsView on unpkg · L58 61if (config.schema !== 1) fail(`unsupported config schema: ${config.schema ?? "<missing>"} (expected 1)`);
63const root = path.dirname(configPath);
64const workdir = path.resolve(root, config.workdir ?? ".");
65await validateRightKitPackageContract(root, config.app);
66validateRightKitCargoContract(root, RIGHTKIT_VERSIONS.cargo, config.app ?? path.basename(root));
67const target = config.targets?.[opts.platform];
68if (!target) fail(`${config.app ?? "app"} has no ${opts.platform} release target`);
69if (target.signed !== true) {
70 fail(`${config.app ?? "app"} ${opts.platform} must declare signed: true; unsigned release targets are forbidden`);
72if (opts.platform === "win" && !target.sign?.files?.length) {
73 fail(`${config.app ?? "app"} win must declare sign.files for the signed release pipeline`);
75if (opts.upload && target.publishBlocked) fail(`${config.app ?? "app"} ${opts.platform} publish blocked: ${target.publishBlocked}`);
77 console.log(`right-release ${VERSION}`);
78 console.log(`config: ${configPath}`);