system() improved virtual host detection for Parallels

This commit is contained in:
Sebastian Hildebrandt
2023-01-30 08:33:23 +01:00
parent 9c617abcba
commit f14db77206
6 changed files with 46 additions and 145 deletions
+8 -114
View File
@@ -201,115 +201,6 @@ function system(callback) {
revision: rPIRevision.revision
};
}
// if (result.model === 'BCM2835' || result.model === 'BCM2708' || result.model === 'BCM2709' || result.model === 'BCM2835' || result.model === 'BCM2837') {
// // Pi 4
// if (['d03114'].indexOf(result.version) >= 0) {
// result.model = result.model + ' - Pi 4 Model B';
// result.version = result.version + ' - Rev. 1.4';
// }
// if (['b03112', 'c03112'].indexOf(result.version) >= 0) {
// result.model = result.model + ' - Pi 4 Model B';
// result.version = result.version + ' - Rev. 1.2';
// }
// if (['a03111', 'b03111', 'c03111'].indexOf(result.version) >= 0) {
// result.model = result.model + ' - Pi 4 Model B';
// result.version = result.version + ' - Rev. 1.1';
// }
// // Pi 3
// if (['a02082', 'a22082', 'a32082', 'a52082'].indexOf(result.version) >= 0) {
// result.model = result.model + ' - Pi 3 Model B';
// result.version = result.version + ' - Rev. 1.2';
// }
// if (['a22083'].indexOf(result.version) >= 0) {
// result.model = result.model + ' - Pi 3 Model B';
// result.version = result.version + ' - Rev. 1.3';
// }
// if (['a020d3'].indexOf(result.version) >= 0) {
// result.model = result.model + ' - Pi 3 Model B+';
// result.version = result.version + ' - Rev. 1.3';
// }
// if (['9020e0'].indexOf(result.version) >= 0) {
// result.model = result.model + ' - Pi 3 Model A+';
// result.version = result.version + ' - Rev. 1.3';
// }
// // Pi 2 Model B
// if (['a01040'].indexOf(result.version) >= 0) {
// result.model = result.model + ' - Pi 2 Model B';
// result.version = result.version + ' - Rev. 1.0';
// }
// if (['a01041', 'a21041'].indexOf(result.version) >= 0) {
// result.model = result.model + ' - Pi 2 Model B';
// result.version = result.version + ' - Rev. 1.1';
// }
// if (['a22042', 'a02042'].indexOf(result.version) >= 0) {
// result.model = result.model + ' - Pi 2 Model B';
// result.version = result.version + ' - Rev. 1.2';
// }
// // Compute Model
// if (['a02100'].indexOf(result.version) >= 0) {
// result.model = result.model + ' - Pi CM3+';
// result.version = result.version + ' - Rev 1.0';
// }
// if (['a020a0', 'a220a0'].indexOf(result.version) >= 0) {
// result.model = result.model + ' - Pi CM3';
// result.version = result.version + ' - Rev 1.0';
// }
// if (['900061'].indexOf(result.version) >= 0) {
// result.model = result.model + ' - Pi CM';
// result.version = result.version + ' - Rev 1.1';
// }
// // Pi Zero
// if (['900092', '920092'].indexOf(result.version) >= 0) {
// result.model = result.model + ' - Pi Zero';
// result.version = result.version + ' - Rev 1.2';
// }
// if (['900093', '920093'].indexOf(result.version) >= 0) {
// result.model = result.model + ' - Pi Zero';
// result.version = result.version + ' - Rev 1.3';
// }
// if (['9000c1'].indexOf(result.version) >= 0) {
// result.model = result.model + ' - Pi Zero W';
// result.version = result.version + ' - Rev 1.1';
// }
// // A, B, A+ B+
// if (['0002', '0003'].indexOf(result.version) >= 0) {
// result.model = result.model + ' - Pi Model B';
// result.version = result.version + ' - Rev 1.0';
// }
// if (['0004', '0005', '0006', '000d', '000e', '000f'].indexOf(result.version) >= 0) {
// result.model = result.model + ' - Pi Model B';
// result.version = result.version + ' - Rev 2.0';
// }
// if (['0007', '0008', '0009'].indexOf(result.version) >= 0) {
// result.model = result.model + ' - Pi Model A';
// result.version = result.version + ' - Rev 2.0';
// }
// if (['0010'].indexOf(result.version) >= 0) {
// result.model = result.model + ' - Pi Model B+';
// result.version = result.version + ' - Rev 1.0';
// }
// if (['0012'].indexOf(result.version) >= 0) {
// result.model = result.model + ' - Pi Model A+';
// result.version = result.version + ' - Rev 1.0';
// }
// if (['0013', '900032'].indexOf(result.version) >= 0) {
// result.model = result.model + ' - Pi Model B+';
// result.version = result.version + ' - Rev 1.2';
// }
// if (['0015', '900021'].indexOf(result.version) >= 0) {
// result.model = result.model + ' - Pi Model A+';
// result.version = result.version + ' - Rev 1.1';
// }
// if (result.model.indexOf('Pi') !== -1 && result.version) { // Pi, Pi Zero
// result.manufacturer = 'Raspberry Pi Foundation';
// }
// }
}
if (callback) { callback(result); }
resolve(result);
@@ -343,7 +234,6 @@ function system(callback) {
try {
util.powerShell('Get-CimInstance Win32_ComputerSystemProduct | select Name,Vendor,Version,IdentifyingNumber,UUID | fl').then((stdout, error) => {
if (!error) {
// let lines = stdout.split('\r\n').filter(line => line.trim() !== '').filter((line, idx) => idx > 0)[0].trim().split(/\s\s+/);
let lines = stdout.split('\r\n');
result.manufacturer = util.getValue(lines, 'vendor', ':');
result.model = util.getValue(lines, 'name', ':');
@@ -352,20 +242,22 @@ function system(callback) {
result.uuid = util.getValue(lines, 'uuid', ':').toLowerCase();
// detect virtual (1)
const model = result.model.toLowerCase();
if (model === 'virtualbox' || model === 'kvm' || model === 'virtual machine' || model === 'bochs' || model.startsWith('vmware') || model.startsWith('qemu')) {
if (model === 'virtualbox' || model === 'kvm' || model === 'virtual machine' || model === 'bochs' || model.startsWith('vmware') || model.startsWith('qemu') || model.startsWith('parallels')) {
result.virtual = true;
if (model.startsWith('virtualbox')) { result.virtualHost = 'VirtualBox'; }
if (model.startsWith('vmware')) { result.virtualHost = 'VMware'; }
if (model.startsWith('kvm')) { result.virtualHost = 'KVM'; }
if (model.startsWith('bochs')) { result.virtualHost = 'bochs'; }
if (model.startsWith('qemu')) { result.virtualHost = 'KVM'; }
if (model.startsWith('parallels')) { result.virtualHost = 'Parallels'; }
}
const manufacturer = result.manufacturer.toLowerCase();
if (manufacturer.startsWith('vmware') || manufacturer.startsWith('qemu') || manufacturer === 'xen') {
if (manufacturer.startsWith('vmware') || manufacturer.startsWith('qemu') || manufacturer === 'xen' || manufacturer.startsWith('parallels')) {
result.virtual = true;
if (manufacturer.startsWith('vmware')) { result.virtualHost = 'VMware'; }
if (manufacturer.startsWith('xen')) { result.virtualHost = 'Xen'; }
if (manufacturer.startsWith('qemu')) { result.virtualHost = 'KVM'; }
if (manufacturer.startsWith('parallels')) { result.virtualHost = 'Parallels'; }
}
util.powerShell('Get-CimInstance MS_Systeminformation -Namespace "root/wmi" | select systemsku | fl ').then((stdout, error) => {
if (!error) {
@@ -376,7 +268,7 @@ function system(callback) {
util.powerShell('Get-CimInstance Win32_bios | select Version, SerialNumber, SMBIOSBIOSVersion').then((stdout, error) => {
if (!error) {
let lines = stdout.toString();
if (lines.indexOf('VRTUAL') >= 0 || lines.indexOf('A M I ') >= 0 || lines.indexOf('VirtualBox') >= 0 || lines.indexOf('VMWare') >= 0 || lines.indexOf('Xen') >= 0) {
if (lines.indexOf('VRTUAL') >= 0 || lines.indexOf('A M I ') >= 0 || lines.indexOf('VirtualBox') >= 0 || lines.indexOf('VMWare') >= 0 || lines.indexOf('Xen') >= 0 || lines.indexOf('Parallels') >= 0) {
result.virtual = true;
if (lines.indexOf('VirtualBox') >= 0 && !result.virtualHost) {
result.virtualHost = 'VirtualBox';
@@ -393,6 +285,9 @@ function system(callback) {
if (lines.indexOf('A M I') >= 0 && !result.virtualHost) {
result.virtualHost = 'Virtual PC';
}
if (lines.indexOf('Parallels') >= 0 && !result.virtualHost) {
result.virtualHost = 'Parallels';
}
}
if (callback) { callback(result); }
resolve(result);
@@ -823,4 +718,3 @@ function chassis(callback) {
}
exports.chassis = chassis;