aboutsummaryrefslogtreecommitdiffstats
path: root/scripts/prerelease.js
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/prerelease.js')
-rw-r--r--scripts/prerelease.js37
1 files changed, 37 insertions, 0 deletions
diff --git a/scripts/prerelease.js b/scripts/prerelease.js
new file mode 100644
index 0000000..3b8080d
--- /dev/null
+++ b/scripts/prerelease.js
@@ -0,0 +1,37 @@
+const fs = require("fs");
+const util = require("util");
+const exec = util.promisify(require("child_process").exec);
+const updateChangelog = require("./updateChangelog");
+
+const excalidrawDir = `${__dirname}/../packages/excalidraw/`;
+const excalidrawPackage = `${excalidrawDir}/package.json`;
+
+const updatePackageVersion = (nextVersion) => {
+ const pkg = require(excalidrawPackage);
+ pkg.version = nextVersion;
+ const content = `${JSON.stringify(pkg, null, 2)}\n`;
+ fs.writeFileSync(excalidrawPackage, content, "utf-8");
+};
+
+const prerelease = async (nextVersion) => {
+ try {
+ await updateChangelog(nextVersion);
+ updatePackageVersion(nextVersion);
+ await exec(`git add -u`);
+ await exec(
+ `git commit -m "docs: release @excalidraw/excalidraw@${nextVersion} 🎉"`,
+ );
+
+ console.info("Done!");
+ } catch (error) {
+ console.error(error);
+ process.exit(1);
+ }
+};
+
+const nextVersion = process.argv.slice(2)[0];
+if (!nextVersion) {
+ console.error("Pass the next version to release!");
+ process.exit(1);
+}
+prerelease(nextVersion);