diff --git a/scripts/release-alpha_version.mjs b/scripts/release-alpha_version.mjs index e810dabd..7319aa63 100644 --- a/scripts/release-alpha_version.mjs +++ b/scripts/release-alpha_version.mjs @@ -1,48 +1,38 @@ import fs from "fs/promises"; import path from "path"; -import { program } from "commander"; /** * 更新 package.json 文件中的版本号 - * @param {string} versionTag 版本标签 (如 "alpha", "beta", "rc") */ -async function updatePackageVersion(versionTag) { +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 currentVersion = packageJson.version.replace( - /-(alpha|beta|rc)\.?\d*$/i, - "", - ); - let newVersion = `${currentVersion}-${versionTag}`; + let result = packageJson.version; + if (!result.includes("alpha")) { + result = `${result}-alpha`; + } - console.log( - "[INFO]: Current package.json version is: ", - packageJson.version, - ); - packageJson.version = newVersion; + 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]: package.json version updated to: ${newVersion}`); - return newVersion; + console.log(`[INFO]: package.json version updated to: ${result}`); } catch (error) { console.error("Error updating package.json version:", error); - throw error; } } /** * 更新 Cargo.toml 文件中的版本号 - * @param {string} versionTag 版本标签 */ -async function updateCargoVersion(versionTag) { +async function updateCargoVersion() { const _dirname = process.cwd(); const cargoTomlPath = path.join(_dirname, "src-tauri", "Cargo.toml"); try { @@ -50,12 +40,10 @@ async function updateCargoVersion(versionTag) { const lines = data.split("\n"); const updatedLines = lines.map((line) => { - if (line.trim().startsWith("version =")) { - // 清理可能存在的旧标签 - const cleanedVersion = line.replace(/-(alpha|beta|rc)\.?\d*"/i, '"'); - const versionMatch = cleanedVersion.match(/version\s*=\s*"([^"]+)"/); - if (versionMatch) { - const newVersion = `${versionMatch[1]}-${versionTag}`; + 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); } } @@ -63,83 +51,46 @@ async function updateCargoVersion(versionTag) { }); await fs.writeFile(cargoTomlPath, updatedLines.join("\n"), "utf8"); - console.log(`[INFO]: Cargo.toml version updated with ${versionTag} tag`); } catch (error) { console.error("Error updating Cargo.toml version:", error); - throw error; } } /** * 更新 tauri.conf.json 文件中的版本号 - * @param {string} versionTag 版本标签 */ -async function updateTauriConfigVersion(versionTag) { +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 currentVersion = tauriConfig.version.replace( - /-(alpha|beta|rc)\.?\d*$/i, - "", - ); - let newVersion = `${currentVersion}-${versionTag}`; + let version = tauriConfig.version; + if (!version.includes("alpha")) { + version = `${version}-alpha`; + } - console.log( - "[INFO]: Current tauri.conf.json version is: ", - tauriConfig.version, - ); - tauriConfig.version = newVersion; + 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: ${newVersion}`); + console.log(`[INFO]: tauri.conf.json version updated to: ${version}`); } catch (error) { console.error("Error updating tauri.conf.json version:", error); - throw error; } } /** * 主函数,依次更新所有文件的版本号 - * @param {string} versionTag 版本标签 */ -async function main(versionTag) { - if (!versionTag) { - console.error("Error: Version tag is required"); - process.exit(1); - } - - // 验证版本标签是否有效 - const validTags = ["alpha", "beta", "rc"]; - if (!validTags.includes(versionTag.toLowerCase())) { - console.error( - `Error: Invalid version tag. Must be one of: ${validTags.join(", ")}`, - ); - process.exit(1); - } - - try { - console.log(`[INFO]: Updating versions with ${versionTag} tag...`); - await updatePackageVersion(versionTag); - await updateCargoVersion(versionTag); - await updateTauriConfigVersion(versionTag); - console.log("[SUCCESS]: All version updates completed successfully!"); - } catch (error) { - console.error("[ERROR]: Failed to update versions:", error); - process.exit(1); - } +async function main() { + await updatePackageVersion(); + await updateCargoVersion(); + await updateTauriConfigVersion(); } -// 设置命令行界面 -program - .name("pnpm release-version") - .description("Add version tag (alpha/beta/rc) to project version numbers") - .argument("", "version tag to add (alpha, beta, or rc)") - .action(main) - .parse(process.argv); +main().catch(console.error);