refactor: auto generate electron_version.h from the version file (#18866)

* refactor: auto generate electron_version.h from the version file

* Update BUILD.gn

Co-Authored-By: Jeremy Apthorp <nornagon@nornagon.net>
This commit is contained in:
Samuel Attard 2019-06-19 14:31:55 -07:00 committed by GitHub
parent 504edf2cf6
commit 7201845894
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
16 changed files with 143 additions and 62 deletions

View file

@ -57,7 +57,6 @@ async function main () {
await Promise.all([
updateVersion(version),
updatePackageJSON(version),
updateVersionH(components),
updateWinRC(components)
])
@ -125,25 +124,6 @@ async function commitVersionBump (version) {
await GitProcess.exec(gitArgs, gitDir)
}
// updates electron_version.h file with new semver values
// TODO(codebytere): auto-generate this
async function updateVersionH (components) {
const filePath = path.resolve(__dirname, '..', 'atom', 'common', 'electron_version.h')
const data = await readFile(filePath, 'utf8')
const arr = data.split('\n')
const pre = components.pre && components.pre.length >= 2 ? `-${components.pre[0]}.${components.pre[1]}` : null
arr.forEach((item, idx) => {
if (item.includes('#define ELECTRON_MAJOR_VERSION')) {
arr[idx] = `#define ELECTRON_MAJOR_VERSION ${components.major}`
arr[idx + 1] = `#define ELECTRON_MINOR_VERSION ${components.minor}`
arr[idx + 2] = `#define ELECTRON_PATCH_VERSION ${components.patch}`
arr[idx + 4] = pre ? `#define ELECTRON_PRE_RELEASE_VERSION ${pre}` : '// #define ELECTRON_PRE_RELEASE_VERSION'
}
})
await writeFile(filePath, arr.join('\n'))
}
// updates atom.rc file with new semver values
async function updateWinRC (components) {
const filePath = path.resolve(__dirname, '..', 'atom', 'browser', 'resources', 'win', 'atom.rc')

View file

@ -0,0 +1,28 @@
const fs = require('fs')
const path = require('path')
const semver = require('semver')
const outputPath = process.argv[2]
const currentVersion = fs.readFileSync(path.resolve(__dirname, '../ELECTRON_VERSION'), 'utf8').trim()
const parsed = semver.parse(currentVersion)
let prerelease = ''
if (parsed.prerelease && parsed.prerelease.length > 0) {
prerelease = parsed.prerelease.join('.')
}
const {
major,
minor,
patch
} = parsed
fs.writeFileSync(outputPath, JSON.stringify({
major,
minor,
patch,
prerelease,
has_prerelease: prerelease === '' ? 0 : 1
}, null, 2))