fix(doclint): correctly get versions on windows (#1350)
--version doesn't work on windows.
This commit is contained in:
parent
245c1fad5d
commit
be83cba409
|
|
@ -21,6 +21,8 @@ const Source = require('./Source');
|
||||||
|
|
||||||
const {spawnSync} = require('child_process');
|
const {spawnSync} = require('child_process');
|
||||||
|
|
||||||
|
const os = require('os');
|
||||||
|
|
||||||
const PROJECT_DIR = path.join(__dirname, '..', '..');
|
const PROJECT_DIR = path.join(__dirname, '..', '..');
|
||||||
const VERSION = require(path.join(PROJECT_DIR, 'package.json')).version;
|
const VERSION = require(path.join(PROJECT_DIR, 'package.json')).version;
|
||||||
|
|
||||||
|
|
@ -46,7 +48,7 @@ async function run() {
|
||||||
const mdSources = [readme, api, contributing, troubleshooting];
|
const mdSources = [readme, api, contributing, troubleshooting];
|
||||||
|
|
||||||
const preprocessor = require('./preprocessor');
|
const preprocessor = require('./preprocessor');
|
||||||
const browserVersions = getBrowserVersions();
|
const browserVersions = await getBrowserVersions();
|
||||||
messages.push(...(await preprocessor.runCommands(mdSources, {
|
messages.push(...(await preprocessor.runCommands(mdSources, {
|
||||||
libversion: VERSION,
|
libversion: VERSION,
|
||||||
chromiumVersion: browserVersions.chromium,
|
chromiumVersion: browserVersions.chromium,
|
||||||
|
|
@ -103,11 +105,33 @@ async function run() {
|
||||||
process.exit(clearExit ? 0 : 1);
|
process.exit(clearExit ? 0 : 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
function getBrowserVersions() {
|
async function getBrowserVersions() {
|
||||||
const chromiumVersion = spawnSync(playwright.chromium.executablePath(), ['--version']).stdout.toString();
|
const [chromium, firefox] = await Promise.all([
|
||||||
const firefoxVersion = spawnSync(playwright.firefox.executablePath(), ['--version']).stdout.toString();
|
getChromeVersion(),
|
||||||
|
getFirefoxVersion(),
|
||||||
|
])
|
||||||
return {
|
return {
|
||||||
chromium: chromiumVersion.trim().split(' ').pop(),
|
chromium,
|
||||||
firefox: firefoxVersion.trim().split(' ').pop(),
|
firefox,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async function getChromeVersion() {
|
||||||
|
if (os.platform() === 'win32' || os.platform() === 'cygwin') {
|
||||||
|
const browser = await playwright.chromium.launch();
|
||||||
|
const page = await browser.newPage();
|
||||||
|
const userAgent = await page.evaluate('navigator.userAgent');
|
||||||
|
const [type] = userAgent.split(' ').filter(str => str.includes('Chrome'));
|
||||||
|
await browser.close();
|
||||||
|
return type.split('/')[1];
|
||||||
|
}
|
||||||
|
const version = spawnSync(playwright.chromium.executablePath(), ['--version'], undefined).stdout.toString();
|
||||||
|
return version.trim().split(' ').pop();
|
||||||
|
}
|
||||||
|
|
||||||
|
async function getFirefoxVersion() {
|
||||||
|
const isWin = os.platform() === 'win32' || os.platform() === 'cygwin';
|
||||||
|
const out = spawnSync(playwright.firefox.executablePath(), [isWin ? '/version' : '--version'], undefined);
|
||||||
|
const version = out.stdout.toString();
|
||||||
|
return version.trim().split(' ').pop();
|
||||||
|
}
|
||||||
Loading…
Reference in a new issue