versions() fix monterey python2 issue (mac OS)

This commit is contained in:
Sebastian Hildebrandt 2021-11-17 23:09:58 +01:00
parent 148cb41599
commit b8b1979694
2 changed files with 34 additions and 7 deletions

View File

@ -595,7 +595,7 @@ function versions(apps, callback) {
}
if ({}.hasOwnProperty.call(appsObj.versions, 'git')) {
if (_darwin) {
const gitHomebrewExists = fs.existsSync('/usr/local/Cellar/git');
const gitHomebrewExists = fs.existsSync('/usr/local/Cellar/git') || fs.existsSync('/opt/homebrew/bin/git');
if (util.darwinXcodeExists() || gitHomebrewExists) {
exec('git --version', function (error, stdout) {
if (!error) {
@ -780,9 +780,14 @@ function versions(apps, callback) {
}
if ({}.hasOwnProperty.call(appsObj.versions, 'python')) {
if (_darwin) {
const gitHomebrewExists = fs.existsSync('/usr/local/Cellar/python');
if (util.darwinXcodeExists() || gitHomebrewExists) {
exec('python -V 2>&1', function (error, stdout) {
const stdout = execSync('sw_vers');
const lines = stdout.toString().split('\n');
const osVersion = util.getValue(lines, 'ProductVersion', ':');
const gitHomebrewExists1 = fs.existsSync('/usr/local/Cellar/python');
const gitHomebrewExists2 = fs.existsSync('/opt/homebrew/bin/python');
if ((util.darwinXcodeExists() && util.semverCompare('12.0.1', osVersion) < 0) || gitHomebrewExists1 || gitHomebrewExists2) {
const cmd = gitHomebrewExists1 ? '/usr/local/Cellar/python -V 2>&1' : (gitHomebrewExists2 ? '/opt/homebrew/bin/python -V 2>&1' : 'python -V 2>&1')
exec(cmd, function (error, stdout) {
if (!error) {
const python = stdout.toString().split('\n')[0] || '';
appsObj.versions.python = python.toLowerCase().replace('python', '').trim();
@ -804,7 +809,7 @@ function versions(apps, callback) {
}
if ({}.hasOwnProperty.call(appsObj.versions, 'python3')) {
if (_darwin) {
const gitHomebrewExists = fs.existsSync('/usr/local/Cellar/python3');
const gitHomebrewExists = fs.existsSync('/usr/local/Cellar/python3') || fs.existsSync('/opt/homebrew/bin/python3');
if (util.darwinXcodeExists() || gitHomebrewExists) {
exec('python3 -V 2>&1', function (error, stdout) {
if (!error) {
@ -828,7 +833,7 @@ function versions(apps, callback) {
}
if ({}.hasOwnProperty.call(appsObj.versions, 'pip')) {
if (_darwin) {
const gitHomebrewExists = fs.existsSync('/usr/local/Cellar/pip');
const gitHomebrewExists = fs.existsSync('/usr/local/Cellar/pip') || fs.existsSync('/opt/homebrew/bin/pip');
if (util.darwinXcodeExists() || gitHomebrewExists) {
exec('pip -V 2>&1', function (error, stdout) {
if (!error) {
@ -854,7 +859,7 @@ function versions(apps, callback) {
}
if ({}.hasOwnProperty.call(appsObj.versions, 'pip3')) {
if (_darwin) {
const gitHomebrewExists = fs.existsSync('/usr/local/Cellar/pip3');
const gitHomebrewExists = fs.existsSync('/usr/local/Cellar/pip3') || fs.existsSync('/opt/homebrew/bin/pip3');
if (util.darwinXcodeExists() || gitHomebrewExists) {
exec('pip3 -V 2>&1', function (error, stdout) {
if (!error) {

View File

@ -1089,6 +1089,27 @@ function plistParser(xmlStr) {
}
}
function semverCompare(v1, v2) {
let res = 0;
const parts1 = v1.split('.');
const parts2 = v2.split('.');
if (parts1[0] < parts2[0]) { res = 1; }
else if (parts1[0] > parts2[0]) { res = -1; }
else if (parts1[0] === parts2[0] && parts1.length >= 2 && parts2.length >= 2) {
if (parts1[1] < parts2[1]) { res = 1; }
else if (parts1[1] > parts2[1]) { res = -1; }
else if (parts1[1] === parts2[1]) {
if (parts1.length >= 3 && parts2.length >= 3) {
if (parts1[2] < parts2[2]) { res = 1; }
else if (parts1[2] > parts2[2]) { res = -1; }
} else if (parts2.length >= 3) {
res = 1;
}
}
}
return res;
}
function noop() { }
exports.toInt = toInt;
@ -1134,3 +1155,4 @@ exports.stringStartWith = stringStartWith;
exports.mathMin = mathMin;
exports.WINDIR = WINDIR;
exports.getFilesInPath = getFilesInPath;
exports.semverCompare = semverCompare;