optimization osInfo(), system()
This commit is contained in:
parent
5ebfe2baec
commit
f1cd917014
@ -149,6 +149,8 @@ function getLogoFile(distro) {
|
|||||||
}
|
}
|
||||||
else if (distro.indexOf('robolinux') !== -1) {
|
else if (distro.indexOf('robolinux') !== -1) {
|
||||||
result = 'robolinux';
|
result = 'robolinux';
|
||||||
|
} else if (_linux && distro) {
|
||||||
|
result = distro.toLowerCase();
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
@ -177,7 +179,7 @@ function osInfo(callback) {
|
|||||||
|
|
||||||
if (_linux) {
|
if (_linux) {
|
||||||
|
|
||||||
exec('cat /etc/*-release', function (error, stdout) {
|
exec('cat /etc/*-release; cat /usr/lib/os-release; cat /etc/openwrt_release', function (error, stdout) {
|
||||||
//if (!error) {
|
//if (!error) {
|
||||||
/**
|
/**
|
||||||
* @namespace
|
* @namespace
|
||||||
@ -194,10 +196,16 @@ function osInfo(callback) {
|
|||||||
release[line.split('=')[0].trim().toUpperCase()] = line.split('=')[1].trim();
|
release[line.split('=')[0].trim().toUpperCase()] = line.split('=')[1].trim();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
let releaseVersion = (release.VERSION || '').replace(/"/g, '');
|
||||||
|
let codename = (release.DISTRIB_CODENAME || '').replace(/"/g, '');
|
||||||
|
if (releaseVersion.indexOf('(')) {
|
||||||
|
codename = releaseVersion.split('(')[1].replace(/[()]/g, '').trim();
|
||||||
|
releaseVersion = releaseVersion.split('(')[0].trim();
|
||||||
|
}
|
||||||
result.distro = (release.DISTRIB_ID || release.NAME || 'unknown').replace(/"/g, '');
|
result.distro = (release.DISTRIB_ID || release.NAME || 'unknown').replace(/"/g, '');
|
||||||
result.logofile = getLogoFile(result.distro);
|
result.logofile = getLogoFile(result.distro);
|
||||||
result.release = (release.DISTRIB_RELEASE || release.VERSION_ID || 'unknown').replace(/"/g, '');
|
result.release = (releaseVersion || release.DISTRIB_RELEASE || release.VERSION_ID || 'unknown').replace(/"/g, '');
|
||||||
result.codename = (release.DISTRIB_CODENAME || '').replace(/"/g, '');
|
result.codename = codename;
|
||||||
result.codepage = util.getCodepage();
|
result.codepage = util.getCodepage();
|
||||||
//}
|
//}
|
||||||
if (callback) {
|
if (callback) {
|
||||||
@ -232,6 +240,21 @@ function osInfo(callback) {
|
|||||||
result.release = util.getValue(lines, 'ProductVersion');
|
result.release = util.getValue(lines, 'ProductVersion');
|
||||||
result.build = util.getValue(lines, 'BuildVersion');
|
result.build = util.getValue(lines, 'BuildVersion');
|
||||||
result.logofile = getLogoFile(result.distro);
|
result.logofile = getLogoFile(result.distro);
|
||||||
|
result.codename = 'macOS';
|
||||||
|
result.codename = (result.release.indexOf('10.4') > -1 ? 'Mac OS X Tiger' : result.codename);
|
||||||
|
result.codename = (result.release.indexOf('10.4') > -1 ? 'Mac OS X Tiger' : result.codename);
|
||||||
|
result.codename = (result.release.indexOf('10.4') > -1 ? 'Mac OS X Tiger' : result.codename);
|
||||||
|
result.codename = (result.release.indexOf('10.5') > -1 ? 'Mac OS X Leopard' : result.codename);
|
||||||
|
result.codename = (result.release.indexOf('10.6') > -1 ? 'Mac OS X Snow Leopard' : result.codename);
|
||||||
|
result.codename = (result.release.indexOf('10.7') > -1 ? 'Mac OS X Lion' : result.codename);
|
||||||
|
result.codename = (result.release.indexOf('10.8') > -1 ? 'OS X Mountain Lion' : result.codename);
|
||||||
|
result.codename = (result.release.indexOf('10.9') > -1 ? 'OS X Mavericks' : result.codename);
|
||||||
|
result.codename = (result.release.indexOf('10.10') > -1 ? 'OS X Yosemite' : result.codename);
|
||||||
|
result.codename = (result.release.indexOf('10.11') > -1 ? 'OS X El Capitan' : result.codename);
|
||||||
|
result.codename = (result.release.indexOf('10.12') > -1 ? 'macOS Sierra' : result.codename);
|
||||||
|
result.codename = (result.release.indexOf('10.13') > -1 ? 'macOS High Sierra' : result.codename);
|
||||||
|
result.codename = (result.release.indexOf('10.14') > -1 ? 'macOS Mojave' : result.codename);
|
||||||
|
|
||||||
result.codepage = util.getCodepage();
|
result.codepage = util.getCodepage();
|
||||||
if (callback) {
|
if (callback) {
|
||||||
callback(result);
|
callback(result);
|
||||||
@ -480,6 +503,24 @@ function versions(callback) {
|
|||||||
functionProcessed();
|
functionProcessed();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
} else {
|
||||||
|
if (_windows) {
|
||||||
|
exec(util.getWmic() + ' service get /value', util.execOptsWin, function (error, stdout) {
|
||||||
|
let serviceSections = stdout.split(/\n\s*\n/);
|
||||||
|
for (let i = 0; i < serviceSections.length; i++) {
|
||||||
|
if (serviceSections[i].trim() !== '') {
|
||||||
|
let lines = serviceSections[i].trim().split('\r\n');
|
||||||
|
let srvCaption = util.getValue(lines, 'caption', '=', true).toLowerCase();
|
||||||
|
if (srvCaption.indexOf('postgresql') > -1) {
|
||||||
|
const parts = srvCaption.split(' server ');
|
||||||
|
if (parts.length > 1) {
|
||||||
|
result.postgresql = parts[1];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
functionProcessed();
|
||||||
|
});
|
||||||
} else {
|
} else {
|
||||||
exec('postgres -V', function (error, stdout) {
|
exec('postgres -V', function (error, stdout) {
|
||||||
if (!error) {
|
if (!error) {
|
||||||
@ -489,6 +530,7 @@ function versions(callback) {
|
|||||||
functionProcessed();
|
functionProcessed();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
}
|
||||||
exec('perl -v', function (error, stdout) {
|
exec('perl -v', function (error, stdout) {
|
||||||
if (!error) {
|
if (!error) {
|
||||||
const perl = stdout.toString().split('\n') || '';
|
const perl = stdout.toString().split('\n') || '';
|
||||||
|
|||||||
@ -41,7 +41,7 @@ function system(callback) {
|
|||||||
|
|
||||||
if (_linux || _freebsd || _openbsd) {
|
if (_linux || _freebsd || _openbsd) {
|
||||||
exec('dmidecode -t system 2>/dev/null', function (error, stdout) {
|
exec('dmidecode -t system 2>/dev/null', function (error, stdout) {
|
||||||
if (!error) {
|
// if (!error) {
|
||||||
let lines = stdout.toString().split('\n');
|
let lines = stdout.toString().split('\n');
|
||||||
result.manufacturer = util.getValue(lines, 'manufacturer');
|
result.manufacturer = util.getValue(lines, 'manufacturer');
|
||||||
result.model = util.getValue(lines, 'product name');
|
result.model = util.getValue(lines, 'product name');
|
||||||
@ -54,7 +54,7 @@ function system(callback) {
|
|||||||
if (result.model.toLowerCase().indexOf('o.e.m.') !== -1) result.model = 'Computer';
|
if (result.model.toLowerCase().indexOf('o.e.m.') !== -1) result.model = 'Computer';
|
||||||
if (result.version.toLowerCase().indexOf('o.e.m.') !== -1) result.version = '';
|
if (result.version.toLowerCase().indexOf('o.e.m.') !== -1) result.version = '';
|
||||||
if (result.sku.toLowerCase().indexOf('o.e.m.') !== -1) result.sku = '-';
|
if (result.sku.toLowerCase().indexOf('o.e.m.') !== -1) result.sku = '-';
|
||||||
}
|
// }
|
||||||
// detect docker
|
// detect docker
|
||||||
if (fs.existsSync('/.dockerenv') || fs.existsSync('/.dockerinit')) {
|
if (fs.existsSync('/.dockerenv') || fs.existsSync('/.dockerinit')) {
|
||||||
result.model = 'Docker Container';
|
result.model = 'Docker Container';
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user