electron/script/lib/get-version.js
Samuel Attard 8af5c6d130
build: update some build dependencies (#44069)
* build: update some build dependencies (#43882)

* build: update some build dependencies

* build: fix eslint issues after updating

* build: disable ts check on busted js example

* build: update internal types for stricter event handling

* restore url.parse behavior

* fix typing issues

* sigh

* build: update easy deps

* build: skip woa engines check

* build: s/colors/chalk
2024-10-01 11:09:28 -07:00

30 lines
1.2 KiB
JavaScript

const { spawnSync } = require('node:child_process');
const fs = require('node:fs');
const path = require('node:path');
const { ELECTRON_DIR, getOutDir } = require('./utils');
// Print the value of electron_version set in gn config.
module.exports.getElectronVersion = () => {
// Read the override_electron_version from args.gn file.
try {
const outDir = path.resolve(ELECTRON_DIR, '..', 'out', getOutDir());
const content = fs.readFileSync(path.join(outDir, 'args.gn'));
const regex = /override_electron_version\s*=\s*["']([^"']+)["']/;
const match = content.toString().match(regex);
if (match) {
return match[1];
}
} catch {
// Error may happen when trying to get version before running gn, which is a
// valid case and error will be ignored.
}
// Most win32 machines have python.exe but no python3.exe.
const python = process.platform === 'win32' ? 'python.exe' : 'python3';
// Get the version from git tag if it is not defined in gn args.
const output = spawnSync(python, [path.join(ELECTRON_DIR, 'script', 'get-git-version.py')]);
if (output.status !== 0) {
throw new Error(`Failed to get git tag, script quit with ${output.status}: ${output.stdout}`);
}
return output.stdout.toString().trim();
};