diff options
Diffstat (limited to 'development/run-version-bump.js')
-rw-r--r-- | development/run-version-bump.js | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/development/run-version-bump.js b/development/run-version-bump.js new file mode 100644 index 000000000..e06c00db3 --- /dev/null +++ b/development/run-version-bump.js @@ -0,0 +1,44 @@ +const { promisify } = require('util') +const fs = require('fs') +const readFile = promisify(fs.readFile) +const writeFile = promisify(fs.writeFile) +const path = require('path') +const changelogPath = path.join(__dirname, '..', 'CHANGELOG.md') +const manifestPath = path.join(__dirname, '..', 'app', 'manifest.json') +const manifest = require('../app/manifest.json') +const versionBump = require('./version-bump') + +const bumpType = normalizeType(process.argv[2]) + + +readFile(changelogPath) +.then(async (changeBuffer) => { + const changelog = changeBuffer.toString() + + const newData = await versionBump(bumpType, changelog, manifest) + + const manifestString = JSON.stringify(newData.manifest, null, 2) + + await writeFile(changelogPath, newData.changelog) + await writeFile(manifestPath, manifestString) + + return newData.version +}) +.then((version) => console.log(`Bumped ${bumpType} to version ${version}`)) +.catch(console.error) + + +function normalizeType (userInput) { + const err = new Error('First option must be a type (major, minor, or patch)') + if (!userInput || typeof userInput !== 'string') { + throw err + } + + const lower = userInput.toLowerCase() + + if (lower !== 'major' && lower !== 'minor' && lower !== 'patch') { + throw err + } + + return lower +} |