Files
openclaw/scripts/ios-sync-versioning.ts
Nimrod Gutman 6681878339 feat(ios): pin calver release versioning (#63001)
* feat(ios): decouple app versioning from gateway

* feat(ios): pin calver release versioning

* refactor(ios): drop prerelease version helper fields

* docs(changelog): note pinned ios release versioning (#63001) (thanks @ngutman)
2026-04-08 11:25:35 +03:00

58 lines
1.6 KiB
TypeScript

import path from "node:path";
import { syncIosVersioning } from "./lib/ios-version.ts";
type Mode = "check" | "write";
export function parseArgs(argv: string[]): { mode: Mode; rootDir: string } {
let mode: Mode = "write";
let rootDir = path.resolve(".");
for (let index = 0; index < argv.length; index += 1) {
const arg = argv[index];
switch (arg) {
case "--check": {
mode = "check";
break;
}
case "--write": {
mode = "write";
break;
}
case "--root": {
const value = argv[index + 1];
if (!value) {
throw new Error("Missing value for --root.");
}
rootDir = path.resolve(value);
index += 1;
break;
}
case "-h":
case "--help": {
console.log(
"Usage: node --import tsx scripts/ios-sync-versioning.ts [--write|--check] [--root dir]",
);
process.exit(0);
}
default: {
throw new Error(`Unknown argument: ${arg}`);
}
}
}
return { mode, rootDir };
}
const options = parseArgs(process.argv.slice(2));
const result = syncIosVersioning({ mode: options.mode, rootDir: options.rootDir });
if (options.mode === "check") {
process.stdout.write("iOS versioning artifacts are up to date.\n");
} else if (result.updatedPaths.length === 0) {
process.stdout.write("iOS versioning artifacts already up to date.\n");
} else {
process.stdout.write(
`Updated iOS versioning artifacts:\n- ${result.updatedPaths.map((filePath) => path.relative(process.cwd(), filePath)).join("\n- ")}\n`,
);
}