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) {
|
||||
result = 'robolinux';
|
||||
} else if (_linux && distro) {
|
||||
result = distro.toLowerCase();
|
||||
}
|
||||
return result;
|
||||
}
|
||||
@ -177,7 +179,7 @@ function osInfo(callback) {
|
||||
|
||||
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) {
|
||||
/**
|
||||
* @namespace
|
||||
@ -194,10 +196,16 @@ function osInfo(callback) {
|
||||
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.logofile = getLogoFile(result.distro);
|
||||
result.release = (release.DISTRIB_RELEASE || release.VERSION_ID || 'unknown').replace(/"/g, '');
|
||||
result.codename = (release.DISTRIB_CODENAME || '').replace(/"/g, '');
|
||||
result.release = (releaseVersion || release.DISTRIB_RELEASE || release.VERSION_ID || 'unknown').replace(/"/g, '');
|
||||
result.codename = codename;
|
||||
result.codepage = util.getCodepage();
|
||||
//}
|
||||
if (callback) {
|
||||
@ -232,6 +240,21 @@ function osInfo(callback) {
|
||||
result.release = util.getValue(lines, 'ProductVersion');
|
||||
result.build = util.getValue(lines, 'BuildVersion');
|
||||
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();
|
||||
if (callback) {
|
||||
callback(result);
|
||||
@ -481,13 +504,32 @@ function versions(callback) {
|
||||
}
|
||||
});
|
||||
} else {
|
||||
exec('postgres -V', function (error, stdout) {
|
||||
if (!error) {
|
||||
const postgresql = stdout.toString().split('\n')[0].split(' ') || [];
|
||||
result.postgresql = postgresql.length ? postgresql[postgresql.length - 1] : '';
|
||||
}
|
||||
functionProcessed();
|
||||
});
|
||||
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 {
|
||||
exec('postgres -V', function (error, stdout) {
|
||||
if (!error) {
|
||||
const postgresql = stdout.toString().split('\n')[0].split(' ') || [];
|
||||
result.postgresql = postgresql.length ? postgresql[postgresql.length - 1] : '';
|
||||
}
|
||||
functionProcessed();
|
||||
});
|
||||
}
|
||||
}
|
||||
exec('perl -v', function (error, stdout) {
|
||||
if (!error) {
|
||||
|
||||
@ -41,20 +41,20 @@ function system(callback) {
|
||||
|
||||
if (_linux || _freebsd || _openbsd) {
|
||||
exec('dmidecode -t system 2>/dev/null', function (error, stdout) {
|
||||
if (!error) {
|
||||
let lines = stdout.toString().split('\n');
|
||||
result.manufacturer = util.getValue(lines, 'manufacturer');
|
||||
result.model = util.getValue(lines, 'product name');
|
||||
result.version = util.getValue(lines, 'version');
|
||||
result.serial = util.getValue(lines, 'serial number');
|
||||
result.uuid = util.getValue(lines, 'uuid');
|
||||
result.sku = util.getValue(lines, 'sku number');
|
||||
if (result.serial.toLowerCase().indexOf('o.e.m.') !== -1) result.serial = '-';
|
||||
if (result.manufacturer.toLowerCase().indexOf('o.e.m.') !== -1) result.manufacturer = '';
|
||||
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.sku.toLowerCase().indexOf('o.e.m.') !== -1) result.sku = '-';
|
||||
}
|
||||
// if (!error) {
|
||||
let lines = stdout.toString().split('\n');
|
||||
result.manufacturer = util.getValue(lines, 'manufacturer');
|
||||
result.model = util.getValue(lines, 'product name');
|
||||
result.version = util.getValue(lines, 'version');
|
||||
result.serial = util.getValue(lines, 'serial number');
|
||||
result.uuid = util.getValue(lines, 'uuid');
|
||||
result.sku = util.getValue(lines, 'sku number');
|
||||
if (result.serial.toLowerCase().indexOf('o.e.m.') !== -1) result.serial = '-';
|
||||
if (result.manufacturer.toLowerCase().indexOf('o.e.m.') !== -1) result.manufacturer = '';
|
||||
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.sku.toLowerCase().indexOf('o.e.m.') !== -1) result.sku = '-';
|
||||
// }
|
||||
// detect docker
|
||||
if (fs.existsSync('/.dockerenv') || fs.existsSync('/.dockerinit')) {
|
||||
result.model = 'Docker Container';
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user