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:
parent
504edf2cf6
commit
7201845894
16 changed files with 143 additions and 62 deletions
|
@ -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')
|
||||
|
|
28
script/generate-version-json.js
Normal file
28
script/generate-version-json.js
Normal 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))
|
Loading…
Add table
Add a link
Reference in a new issue