diff --git a/package.json b/package.json index 799d697..c9d861a 100644 --- a/package.json +++ b/package.json @@ -8,9 +8,9 @@ "web:dev": "vite", "web:build": "tsc && vite build", "web:serve": "vite preview", - "prepare": "husky install", "predev": "node scripts/pre-dev.mjs", - "postversion": "node scripts/post-version.mjs" + "publish": "node scripts/publish.mjs", + "prepare": "husky install" }, "dependencies": { "@emotion/react": "^11.7.0", diff --git a/scripts/post-version.mjs b/scripts/post-version.mjs deleted file mode 100644 index d6750a7..0000000 --- a/scripts/post-version.mjs +++ /dev/null @@ -1,24 +0,0 @@ -import fs from "fs-extra"; -import { createRequire } from "module"; -import { execSync } from "child_process"; - -const require = createRequire(import.meta.url); - -// update the tauri conf version -async function resolveVersion() { - const { version } = require("../package.json"); - const tauri = require("../src-tauri/tauri.conf.json"); - - tauri.package.version = version; - - await fs.writeFile( - "./src-tauri/tauri.conf.json", - JSON.stringify(tauri, undefined, 2) - ); - execSync("git add ./src-tauri/tauri.conf.json"); - execSync(`git commit -m v${version} --no-verify`); - execSync(`git push`); - execSync(`git push origin v${version}`); -} - -resolveVersion(); diff --git a/scripts/publish.mjs b/scripts/publish.mjs new file mode 100644 index 0000000..f22119d --- /dev/null +++ b/scripts/publish.mjs @@ -0,0 +1,41 @@ +import fs from "fs-extra"; +import { createRequire } from "module"; +import { execSync } from "child_process"; + +const require = createRequire(import.meta.url); + +async function resolvePublish() { + const flag = process.argv[2] ?? "patch"; + const packageJson = require("../package.json"); + const tauriJson = require("../src-tauri/tauri.conf.json"); + + let [a, b, c] = packageJson.version.split(".").map(Number); + + if (flag === "major") a += 1; + else if (flag === "minor") b += 1; + else if (flag === "patch") c += 1; + else throw new Error(`invalid flag "${flag}"`); + + const nextVersion = `${a}.${b}.${c}`; + packageJson.version = nextVersion; + tauriJson.package.version = nextVersion; + + await fs.writeFile( + "./package.json", + JSON.stringify(packageJson, undefined, 2) + ); + await fs.writeFile( + "./src-tauri/tauri.conf.json", + JSON.stringify(tauriJson, undefined, 2) + ); + + execSync("git add ./package.json"); + execSync("git add ./src-tauri/tauri.conf.json"); + execSync(`git commit -m "v${nextVersion}"`); + execSync(`git tag -a v${nextVersion} -m "v${nextVersion}"`); + execSync(`git push`); + execSync(`git push origin v${nextVersion}`); + console.log(`Publish Successfully...`); +} + +resolvePublish();