From 7387db4a69099902b4857c7eca819ba6427b25a5 Mon Sep 17 00:00:00 2001
From: Julia Friesel <julia.friesel@gmail.com>
Date: Tue, 30 Apr 2019 11:31:25 +0200
Subject: [PATCH] Add update version script from manyverse

---
 tools/update-version.js | 70 +++++++++++++++++++++++++++++++++++++++++
 1 file changed, 70 insertions(+)
 create mode 100755 tools/update-version.js

diff --git a/tools/update-version.js b/tools/update-version.js
new file mode 100755
index 00000000..e948a14d
--- /dev/null
+++ b/tools/update-version.js
@@ -0,0 +1,70 @@
+#!/usr/bin/env node
+
+// from https://gitlab.com/staltz/manyverse/blob/master/tools/update-version.js
+
+/* Any copyright is dedicated to the Public Domain.
+ * http://creativecommons.org/publicdomain/zero/1.0/ */
+
+const ReactNativeVersion = require('react-native-version')
+const readline = require('readline')
+const leftPad = require('left-pad')
+const path = require('path')
+const fs = require('fs')
+
+const currentVersion = JSON.parse(fs.readFileSync('./package.json')).version
+
+const rl = readline.createInterface({
+  input: process.stdin,
+  output: process.stdout,
+})
+
+function createTodaysVersion(attempt) {
+  const today = new Date()
+  const yy = today.getFullYear() - 2000 // So it's two digits
+  const mm = leftPad(today.getMonth() + 1, 2, '0')
+  const d = today.getDate()
+  if (attempt === 0) {
+    return `0.${yy}${mm}.${d}-beta`
+  } else {
+    const letter = String.fromCharCode(97 + attempt) // 0=a, 1=b, 2=c, ...
+    return `0.${yy}${mm}.${d}-beta.${letter}`
+  }
+}
+
+let nextVersion
+for (let i = 0 /* letter a */; i <= 25 /* letter z */; i++) {
+  nextVersion = createTodaysVersion(i)
+  if (nextVersion !== currentVersion) break
+}
+if (nextVersion === currentVersion) {
+  console.error('I dont know what else to generate beyong ' + nextVersion)
+  process.exit(1)
+}
+
+rl.question('Next version will be `' + nextVersion + '`, okay? y/n ', yn => {
+  if (yn !== 'y' && yn !== 'Y') {
+    console.log('Release cancelled.\n')
+    process.exit(1)
+    return
+  }
+
+  const pkgJSON = JSON.parse(fs.readFileSync('./package.json'))
+  const pkgLockJSON = JSON.parse(fs.readFileSync('./package-lock.json'))
+  pkgJSON.version = nextVersion
+  pkgLockJSON.version = nextVersion
+  fs.writeFileSync('./package.json', JSON.stringify(pkgJSON, null, 2))
+  fs.writeFileSync('./package-lock.json', JSON.stringify(pkgLockJSON, null, 2))
+
+  ReactNativeVersion.version(
+    {
+      neverAmend: true,
+      target: 'android',
+    },
+    path.resolve(__dirname, '../'),
+  ).catch(err => {
+    console.error(err)
+    process.exit(1)
+  })
+
+  rl.close()
+})
-- 
GitLab