vscode-ripgrep-dynamic
Version:
Downloads the ripgrep binary shipped in VS Code
28 lines (21 loc) • 836 B
JavaScript
;
const cp = require('child_process');
// Publishing with npm 5 does not work
const npmPath = process.env['npm_execpath'];
const out = cp.execSync(`${npmPath} --version`).toString();
if (compareSemver(out, '5.0.0') >= 0) {
throw new Error('NPM < 5 is required for publishing vscode-ripgrep. See https://github.com/roblourens/vscode-ripgrep/issues/7')
}
function compareSemver(a, b) {
const aNum = versionStringToNumber(a);
const bNum = versionStringToNumber(b);
return aNum - bNum;
}
function versionStringToNumber(str) {
const semverRegex = /v?(\d+)\.(\d+)\.(\d+)/;
const match = str.match(semverRegex);
if (!match) {
throw new Error('Invalid node version string: ' + str);
}
return parseInt(match[1], 10) * 10000 + parseInt(match[2], 10) * 100 + parseInt(match[3], 10);
}