From 7f9d73a7d304bd6287be74cb4095100363abe84d Mon Sep 17 00:00:00 2001 From: 苏向夜 Date: Sun, 18 Jan 2026 16:57:52 +0800 Subject: chore: add tauri version bump script --- scripts/bump-tauri.ts | 52 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 scripts/bump-tauri.ts (limited to 'scripts/bump-tauri.ts') diff --git a/scripts/bump-tauri.ts b/scripts/bump-tauri.ts new file mode 100644 index 0000000..0cf6aea --- /dev/null +++ b/scripts/bump-tauri.ts @@ -0,0 +1,52 @@ +import fs from "node:fs"; +import path from "node:path"; +import consola from "consola"; +import toml from "toml"; + +const tauriJsonPath = path.join( + __dirname, + "..", + "src-tauri", + "tauri.conf.json", +); +consola.debug("tauriJsonPath:", tauriJsonPath); +const tauriTomlPath = path.join(__dirname, "..", "src-tauri", "Cargo.toml"); +consola.debug("tauriTomlPath:", tauriTomlPath); + +const getCurrentVersion = () => { + const tauriJsonData = fs.readFileSync(tauriJsonPath, "utf8"); + const tauriJson = JSON.parse(tauriJsonData); + const version = tauriJson.version; + if (!version) throw new Error("Version field not found in tauri.conf.json"); + return version; +}; + +const getBumpVersion = () => { + const tauriTomlData = fs.readFileSync(tauriTomlPath, "utf8"); + const tauriToml = toml.parse(tauriTomlData); + const version = tauriToml.package.version; + if (!version) throw new Error("Version field not found in Cargo.toml"); + return version; +}; + +const replaceVersion = (content: string, version: string) => { + const newJson = content.replace( + /"version": "[^"]+"/, + `"version": "${version}"`, + ); + return newJson; +}; + +const tauriJsonData = fs.readFileSync(tauriJsonPath, "utf8"); +const currentVersion = getCurrentVersion(); +const bumpVersion = getBumpVersion(); +consola.debug("currentVersion:", currentVersion); +consola.debug("bumpVersion:", bumpVersion); + +if (currentVersion !== bumpVersion) { + const replacedData = replaceVersion(tauriJsonData, bumpVersion); + consola.info(`Bumped version from ${currentVersion} to ${bumpVersion}`); + fs.writeFileSync(tauriJsonPath, replacedData); +} else { + consola.info(`Version ${currentVersion} is already up-to-date`); +} -- cgit v1.2.3-70-g09d2