123456789101112131415161718192021222324252627282930 |
- 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) {
- // 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();
- };
|