From 44f21444bb4c3a3c1c454c805c3ec6048948fbe1 Mon Sep 17 00:00:00 2001 From: Tunglies Date: Sat, 22 Mar 2025 17:19:11 +0800 Subject: [PATCH] feat: update versioning in package.json, Cargo.toml, and tauri.conf.json to append '-alpha' --- scripts/release-alpha_version.mjs | 82 ++++++++++++++++++++++++++----- 1 file changed, 69 insertions(+), 13 deletions(-) diff --git a/scripts/release-alpha_version.mjs b/scripts/release-alpha_version.mjs index a67841fc..7319aa63 100644 --- a/scripts/release-alpha_version.mjs +++ b/scripts/release-alpha_version.mjs @@ -2,39 +2,95 @@ import fs from "fs/promises"; import path from "path"; /** - * @param string 传入格式化后的hash - * 将新的版本号写入文件 package.json + * 更新 package.json 文件中的版本号 */ async function updatePackageVersion() { - // 获取内容根目录 const _dirname = process.cwd(); const packageJsonPath = path.join(_dirname, "package.json"); try { - // 读取文件 const data = await fs.readFile(packageJsonPath, "utf8"); const packageJson = JSON.parse(data); let result = packageJson.version; - const newVersion = result; - - // Check if version includes 'alpha' if (!result.includes("alpha")) { - // If not, append -alpha to the version result = `${result}-alpha`; } - console.log("[INFO]: Current version is: ", result); + console.log("[INFO]: Current package.json version is: ", result); packageJson.version = result; - // 写入版本号 await fs.writeFile( packageJsonPath, JSON.stringify(packageJson, null, 2), "utf8", ); - console.log(`[INFO]: Alpha version update to: ${newVersion}`); + console.log(`[INFO]: package.json version updated to: ${result}`); } catch (error) { - console.error("pnpm run fix-alpha-version ERROR", error); + console.error("Error updating package.json version:", error); } } -updatePackageVersion().catch(console.error); +/** + * 更新 Cargo.toml 文件中的版本号 + */ +async function updateCargoVersion() { + const _dirname = process.cwd(); + const cargoTomlPath = path.join(_dirname, "src-tauri", "Cargo.toml"); + try { + const data = await fs.readFile(cargoTomlPath, "utf8"); + const lines = data.split("\n"); + + const updatedLines = lines.map((line) => { + if (line.startsWith("version =")) { + const versionMatch = line.match(/version\s*=\s*"([^"]+)"/); + if (versionMatch && !versionMatch[1].includes("alpha")) { + const newVersion = `${versionMatch[1]}-alpha`; + return line.replace(versionMatch[1], newVersion); + } + } + return line; + }); + + await fs.writeFile(cargoTomlPath, updatedLines.join("\n"), "utf8"); + } catch (error) { + console.error("Error updating Cargo.toml version:", error); + } +} + +/** + * 更新 tauri.conf.json 文件中的版本号 + */ +async function updateTauriConfigVersion() { + const _dirname = process.cwd(); + const tauriConfigPath = path.join(_dirname, "src-tauri", "tauri.conf.json"); + try { + const data = await fs.readFile(tauriConfigPath, "utf8"); + const tauriConfig = JSON.parse(data); + + let version = tauriConfig.version; + if (!version.includes("alpha")) { + version = `${version}-alpha`; + } + + console.log("[INFO]: Current tauri.conf.json version is: ", version); + tauriConfig.version = version; + await fs.writeFile( + tauriConfigPath, + JSON.stringify(tauriConfig, null, 2), + "utf8", + ); + console.log(`[INFO]: tauri.conf.json version updated to: ${version}`); + } catch (error) { + console.error("Error updating tauri.conf.json version:", error); + } +} + +/** + * 主函数,依次更新所有文件的版本号 + */ +async function main() { + await updatePackageVersion(); + await updateCargoVersion(); + await updateTauriConfigVersion(); +} + +main().catch(console.error);