osInfo() added uefi (OS uses UEFI during startup)
This commit is contained in:
Vendored
+1
@@ -203,6 +203,7 @@ export namespace Systeminformation {
|
||||
serial: string;
|
||||
build: string;
|
||||
servicepack: string;
|
||||
uefi: boolean;
|
||||
}
|
||||
|
||||
interface UuidData {
|
||||
|
||||
+50
-13
@@ -180,7 +180,8 @@ function osInfo(callback) {
|
||||
logofile: '',
|
||||
serial: '',
|
||||
build: '',
|
||||
servicepack: ''
|
||||
servicepack: '',
|
||||
uefi: false
|
||||
};
|
||||
|
||||
if (_linux) {
|
||||
@@ -214,19 +215,22 @@ function osInfo(callback) {
|
||||
result.codename = codename;
|
||||
result.codepage = util.getCodepage();
|
||||
result.build = (release.BUILD_ID || '').replace(/"/g, '').trim();
|
||||
uuid().then(data => {
|
||||
result.serial = data.os;
|
||||
if (callback) {
|
||||
callback(result);
|
||||
}
|
||||
resolve(result);
|
||||
isUefiLinux().then(uefi => {
|
||||
result.uefi = uefi;
|
||||
uuid().then(data => {
|
||||
result.serial = data.os;
|
||||
if (callback) {
|
||||
callback(result);
|
||||
}
|
||||
resolve(result);
|
||||
});
|
||||
});
|
||||
//}
|
||||
});
|
||||
}
|
||||
if (_freebsd || _openbsd || _netbsd) {
|
||||
|
||||
exec('sysctl kern.ostype kern.osrelease kern.osrevision kern.hostuuid', function (error, stdout) {
|
||||
exec('sysctl kern.ostype kern.osrelease kern.osrevision kern.hostuuid machdep.bootmethod', function (error, stdout) {
|
||||
if (!error) {
|
||||
let lines = stdout.toString().split('\n');
|
||||
result.distro = util.getValue(lines, 'kern.ostype');
|
||||
@@ -235,6 +239,7 @@ function osInfo(callback) {
|
||||
result.serial = util.getValue(lines, 'kern.uuid');
|
||||
result.codename = '';
|
||||
result.codepage = util.getCodepage();
|
||||
result.uefi = util.getValue(lines, 'machdep.bootmethod').toLowerCase().indexOf('uefi') >= 0;
|
||||
}
|
||||
if (callback) {
|
||||
callback(result);
|
||||
@@ -265,7 +270,7 @@ function osInfo(callback) {
|
||||
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.codename = (result.release.indexOf('10.15') > -1 ? 'macOS Catalina' : result.codename);
|
||||
|
||||
result.uefi = true;
|
||||
result.codepage = util.getCodepage();
|
||||
if (callback) {
|
||||
callback(result);
|
||||
@@ -294,10 +299,13 @@ function osInfo(callback) {
|
||||
result.build = util.getValue(lines, 'BuildNumber', '=').trim();
|
||||
result.servicepack = util.getValue(lines, 'ServicePackMajorVersion', '=').trim() + '.' + util.getValue(lines, 'ServicePackMinorVersion', '=').trim();
|
||||
result.codepage = util.getCodepage();
|
||||
if (callback) {
|
||||
callback(result);
|
||||
}
|
||||
resolve(result);
|
||||
isUefiWindows().then(uefi => {
|
||||
result.uefi = uefi;
|
||||
if (callback) {
|
||||
callback(result);
|
||||
}
|
||||
resolve(result);
|
||||
});
|
||||
});
|
||||
} catch (e) {
|
||||
if (callback) { callback(result); }
|
||||
@@ -310,6 +318,35 @@ function osInfo(callback) {
|
||||
|
||||
exports.osInfo = osInfo;
|
||||
|
||||
function isUefiLinux() {
|
||||
return new Promise((resolve) => {
|
||||
process.nextTick(() => {
|
||||
fs.stat('/sys/firmware/efi', function (err) {
|
||||
if (!err) {
|
||||
resolve(true);
|
||||
}
|
||||
else {
|
||||
resolve(false);
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
function isUefiWindows() {
|
||||
return new Promise((resolve) => {
|
||||
process.nextTick(() => {
|
||||
exec('%windir%\\Panther\\setupact.log | findstr "Detected boot environment" ', util.execOptsWin, function (error, stdout) {
|
||||
if (!error) {
|
||||
const line = stdout.toString().split('\n\r')[0];
|
||||
resolve(line.toLowerCase().indexOf('uefi') >= 0);
|
||||
}
|
||||
resolve(false);
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
function versions(callback) {
|
||||
return new Promise((resolve) => {
|
||||
process.nextTick(() => {
|
||||
|
||||
Reference in New Issue
Block a user