Add update version script from manyverse
This commit is contained in:
Executable
+70
@@ -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()
|
||||
})
|
||||
Reference in New Issue
Block a user