summaryrefslogtreecommitdiff
path: root/MistyCore/node_modules/systeminformation/lib/virtualbox.js
diff options
context:
space:
mode:
authorMinteck <contact@minteck.org>2022-11-28 17:31:34 +0100
committerMinteck <contact@minteck.org>2022-11-28 17:31:34 +0100
commit7923aa8942b55884320ef2428417e3ee4b121613 (patch)
tree7993632f2898b1998f25b11ce40a8d2eb3d44730 /MistyCore/node_modules/systeminformation/lib/virtualbox.js
downloadmistyos-og-mane.tar.gz
mistyos-og-mane.tar.bz2
mistyos-og-mane.zip
Initial commitHEADmane
Diffstat (limited to 'MistyCore/node_modules/systeminformation/lib/virtualbox.js')
-rw-r--r--MistyCore/node_modules/systeminformation/lib/virtualbox.js107
1 files changed, 107 insertions, 0 deletions
diff --git a/MistyCore/node_modules/systeminformation/lib/virtualbox.js b/MistyCore/node_modules/systeminformation/lib/virtualbox.js
new file mode 100644
index 0000000..61268b6
--- /dev/null
+++ b/MistyCore/node_modules/systeminformation/lib/virtualbox.js
@@ -0,0 +1,107 @@
+'use strict';
+// @ts-check
+// ==================================================================================
+// virtualbox.js
+// ----------------------------------------------------------------------------------
+// Description: System Information - library
+// for Node.js
+// Copyright: (c) 2014 - 2022
+// Author: Sebastian Hildebrandt
+// ----------------------------------------------------------------------------------
+// License: MIT
+// ==================================================================================
+// 14. Docker
+// ----------------------------------------------------------------------------------
+
+const os = require('os');
+const exec = require('child_process').exec;
+const util = require('./util');
+
+function vboxInfo(callback) {
+
+ // fallback - if only callback is given
+ let result = [];
+ return new Promise((resolve) => {
+ process.nextTick(() => {
+ try {
+ exec(util.getVboxmanage() + ' list vms --long', function (error, stdout) {
+ let parts = (os.EOL + stdout.toString()).split(os.EOL + 'Name:');
+ parts.shift();
+ parts.forEach(part => {
+ const lines = ('Name:' + part).split(os.EOL);
+ const state = util.getValue(lines, 'State');
+ const running = state.startsWith('running');
+ const runningSinceString = running ? state.replace('running (since ', '').replace(')', '').trim() : '';
+ let runningSince = 0;
+ try {
+ if (running) {
+ const sinceDateObj = new Date(runningSinceString);
+ const offset = sinceDateObj.getTimezoneOffset();
+ runningSince = Math.round((Date.now() - Date.parse(sinceDateObj)) / 1000) + offset * 60;
+ }
+ } catch (e) {
+ util.noop();
+ }
+ const stoppedSinceString = !running ? state.replace('powered off (since', '').replace(')', '').trim() : '';
+ let stoppedSince = 0;
+ try {
+ if (!running) {
+ const sinceDateObj = new Date(stoppedSinceString);
+ const offset = sinceDateObj.getTimezoneOffset();
+ stoppedSince = Math.round((Date.now() - Date.parse(sinceDateObj)) / 1000) + offset * 60;
+ }
+ } catch (e) {
+ util.noop();
+ }
+ result.push({
+ id: util.getValue(lines, 'UUID'),
+ name: util.getValue(lines, 'Name'),
+ running,
+ started: runningSinceString,
+ runningSince,
+ stopped: stoppedSinceString,
+ stoppedSince,
+ guestOS: util.getValue(lines, 'Guest OS'),
+ hardwareUUID: util.getValue(lines, 'Hardware UUID'),
+ memory: parseInt(util.getValue(lines, 'Memory size', ' '), 10),
+ vram: parseInt(util.getValue(lines, 'VRAM size'), 10),
+ cpus: parseInt(util.getValue(lines, 'Number of CPUs'), 10),
+ cpuExepCap: util.getValue(lines, 'CPU exec cap'),
+ cpuProfile: util.getValue(lines, 'CPUProfile'),
+ chipset: util.getValue(lines, 'Chipset'),
+ firmware: util.getValue(lines, 'Firmware'),
+ pageFusion: util.getValue(lines, 'Page Fusion') === 'enabled',
+ configFile: util.getValue(lines, 'Config file'),
+ snapshotFolder: util.getValue(lines, 'Snapshot folder'),
+ logFolder: util.getValue(lines, 'Log folder'),
+ hpet: util.getValue(lines, 'HPET') === 'enabled',
+ pae: util.getValue(lines, 'PAE') === 'enabled',
+ longMode: util.getValue(lines, 'Long Mode') === 'enabled',
+ tripleFaultReset: util.getValue(lines, 'Triple Fault Reset') === 'enabled',
+ apic: util.getValue(lines, 'APIC') === 'enabled',
+ x2Apic: util.getValue(lines, 'X2APIC') === 'enabled',
+ acpi: util.getValue(lines, 'ACPI') === 'enabled',
+ ioApic: util.getValue(lines, 'IOAPIC') === 'enabled',
+ biosApicMode: util.getValue(lines, 'BIOS APIC mode'),
+ bootMenuMode: util.getValue(lines, 'Boot menu mode'),
+ bootDevice1: util.getValue(lines, 'Boot Device 1'),
+ bootDevice2: util.getValue(lines, 'Boot Device 2'),
+ bootDevice3: util.getValue(lines, 'Boot Device 3'),
+ bootDevice4: util.getValue(lines, 'Boot Device 4'),
+ timeOffset: util.getValue(lines, 'Time offset'),
+ rtc: util.getValue(lines, 'RTC'),
+ });
+ });
+
+ if (callback) { callback(result); }
+ resolve(result);
+ });
+ } catch (e) {
+ if (callback) { callback(result); }
+ resolve(result);
+ }
+ });
+ });
+}
+
+exports.vboxInfo = vboxInfo;