Files
openclaw/scripts/ios-sync-versioning.ts
2026-07-01 22:05:26 -05:00

47 lines
1.5 KiB
TypeScript

// Ios Sync Versioning script supports OpenClaw repository automation.
import path from "node:path";
import { syncIosVersioning } from "./lib/ios-version.ts";
import { parseVersionSyncArgs } from "./lib/version-script-args.ts";
export { parseVersionSyncArgs as parseArgs } from "./lib/version-script-args.ts";
function printUsage(): void {
process.stdout.write(
"Usage: node --import tsx scripts/ios-sync-versioning.ts [--write|--check] [--version YYYY.M.D] [--root dir]\n\nValidates that iOS versioning inputs can produce generated local artifacts.\n",
);
}
function main(argv = process.argv.slice(2)): number {
const options = parseVersionSyncArgs(argv);
if (options.help) {
printUsage();
return 0;
}
const result = syncIosVersioning({
mode: options.mode,
releaseVersion: options.releaseVersion,
rootDir: options.rootDir,
});
if (options.mode === "check") {
process.stdout.write("iOS versioning inputs are valid.\n");
} else if (result.updatedPaths.length === 0) {
process.stdout.write(
"iOS versioning inputs are valid; local artifacts are generated by iOS prep commands.\n",
);
} else {
process.stdout.write(
`Updated iOS versioning artifacts:\n- ${result.updatedPaths.map((filePath) => path.relative(process.cwd(), filePath)).join("\n- ")}\n`,
);
}
return 0;
}
try {
process.exitCode = main();
} catch (error) {
process.stderr.write(`${error instanceof Error ? error.message : String(error)}\n`);
process.exitCode = 1;
}