From 457ba5f4f44c6630925a50cb7590814d7952c682 Mon Sep 17 00:00:00 2001
From: aliasaria <ali.asaria@gmail.com>
Date: Fri, 15 Mar 2024 11:10:39 -0400
Subject: [PATCH] script to help bump version for new builds

---
 scripts/bump_version.js | 61 +++++++++++++++++++++++++++++++++++++++++
 1 file changed, 61 insertions(+)
 create mode 100644 scripts/bump_version.js

diff --git a/scripts/bump_version.js b/scripts/bump_version.js
new file mode 100644
index 00000000..c8a23a3d
--- /dev/null
+++ b/scripts/bump_version.js
@@ -0,0 +1,61 @@
+const fs = require('fs');
+const { execSync } = require('child_process');
+const { version } = require('os');
+
+const files = [
+  'package.json',
+  'package-lock.json',
+  'release/app/package.json',
+  'release/app/package-lock.json',
+];
+
+function getVersion() {
+  const data = fs.readFileSync('package.json', 'utf-8');
+  const json = JSON.parse(data);
+  return json.version;
+}
+
+function bumpVersion(filePath, newVersion) {
+  console.log(`Bumping version in ${filePath}`);
+  const data = fs.readFileSync(filePath, 'utf-8');
+  const json = JSON.parse(data);
+  json.version = newVersion;
+  fs.writeFileSync(filePath, JSON.stringify(json, null, 2));
+}
+
+// Get argument which can be either 'major', 'minor', or 'patch'
+const versionPart = process.argv[2];
+if (versionPart === undefined) {
+  console.error(
+    'No argument provided. Must provide either "major", "minor", or "patch"'
+  );
+  process.exit(1);
+}
+
+if (versionPart && !['major', 'minor', 'patch'].includes(versionPart)) {
+  console.error(
+    'Invalid argument. Must be either "major", "minor", or "patch"'
+  );
+  process.exit(1);
+}
+
+const currentVersion = getVersion();
+const versionParts = currentVersion.split('.');
+if (versionPart === 'major') versionParts[0] = parseInt(versionParts[0]) + 1; // Bump the major version
+if (versionPart === 'minor') versionParts[1] = parseInt(versionParts[1]) + 1; // Bump the minor version
+if (versionPart === 'patch') versionParts[2] = parseInt(versionParts[2]) + 1; // Bump the patch version
+const newVersion = versionParts.join('.');
+console.log(`Bumping version from ${currentVersion} to ${newVersion}`);
+
+files.forEach((file) => {
+  bumpVersion(file, newVersion);
+});
+
+// Add the updated files to git, commit the changes, and tag the new commit
+execSync(`git add ${files.join(' ')}`);
+execSync(`git commit -m "Bump version to ${newVersion}"`);
+execSync(`git tag v${newVersion}`);
+
+console.log(
+  'A new commit and tag have been created. Please push the changes to the remote repository to trigger a new build.'
+);
-- 
GitLab