diff --git a/package.json b/package.json index 5c91d66..b9a2dcc 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,8 @@ }, "scripts": { "tauri": "cp config.json cinny/ && tauri", - "release": "node scripts/release.mjs" + "release": "node scripts/release.mjs", + "bump": "node scripts/update-version.mjs" }, "keywords": [], "author": "Ajay Bura", diff --git a/scripts/update-version.mjs b/scripts/update-version.mjs new file mode 100644 index 0000000..6e35ab3 --- /dev/null +++ b/scripts/update-version.mjs @@ -0,0 +1,63 @@ +import fs from "fs"; +import path from "path"; +import { execSync } from "child_process"; + +const version = process.argv[2]; + +if (!version) { + console.error("Missing version"); + process.exit(1); +} + +console.log(`Preparing release ${version}`); + +// 1. Update npm versions +execSync(`npm version ${version} --no-git-tag-version`, { + stdio: "inherit" +}); +console.log(`Updated package.json and package-lock.json → ${version}`); + +// 2. Update Cargo.toml +const cargoToml = "src-tauri/Cargo.toml"; +let cargoContent = fs.readFileSync(cargoToml, "utf8"); + +cargoContent = cargoContent.replace( + /^version\s*=\s*".*"/m, + `version = "${version}"` +); + +fs.writeFileSync(cargoToml, cargoContent); +console.log(`Updated ${cargoToml} → ${version}`); + +// 3. Update tauri.conf.json +const tauriConfigPath = "src-tauri/tauri.conf.json"; +const tauriConfig = JSON.parse(fs.readFileSync(tauriConfigPath)); + +tauriConfig.version = version; + +fs.writeFileSync( + tauriConfigPath, + JSON.stringify(tauriConfig, null, 2) + "\n" +); +console.log(`Updated ${tauriConfigPath} → ${version}`); + +// 4. Update Cinny web submodule to latest tag +console.log("Updating cinny web submodule"); + +execSync("git submodule update --init --recursive", { stdio: "inherit" }); + +execSync("cd cinny && git fetch --tags", { stdio: "inherit" }); + +const latestTag = execSync( + "cd cinny && git describe --tags $(git rev-list --tags --max-count=1)" +) + .toString() + .trim(); + +console.log(`Latest cinny tag: ${latestTag}`); + +execSync(`cd cinny && git checkout ${latestTag}`, { stdio: "inherit" }); + +execSync("git add cinny", { stdio: "inherit" }); + +console.log("Release preparation complete"); \ No newline at end of file