diff --git a/README.md b/README.md
index fd8bed5..e75d27e 100644
--- a/README.md
+++ b/README.md
@@ -235,10 +235,10 @@ and above.
I was able to test it on several Debian, Raspbian, Ubuntu distributions as well
as macOS (Mavericks, Yosemite, El Captain, Sierra, High Sierra, Mojave,
-Catalina, Big Sur) and some Windows 7, Windows 8, Windows 10, FreeBSD, OpenBSD,
-NetBSD and SunOS machines. Not all functions are supported on all operating
-systems. Have a look at the function reference in the docs to get further
-details.
+Catalina, Big Sur, Monterey, Ventura, Sonoma, Sequoia, Tahoe) and some Windows 7,
+Windows 8, Windows 10, Windows 11, FreeBSD, OpenBSD, NetBSD and SunOS machines.
+Not all functions are supported on all operating systems. Have a look at the
+function reference in the docs to get further details.
If you have comments, suggestions & reports, please feel free to contact me!
@@ -1018,21 +1018,27 @@ async function cpuData() {
#### macOS - Temperature Sensor
-To be able to measure temperature on macOS I created a little additional
-package. Due to some difficulties in NPM with `optionalDependencies` I
+To be able to measure temperature on macOS I created two little additional
+packages. Due to some difficulties in NPM with `optionalDependencies` I
unfortunately was getting unexpected warnings on other platforms. So I decided
to drop this optional dependency for macOS - so by default, you will not get
correct values.
-This additional package is now also supporting Apple Silicon M1/M2/M3 machines.
-
But if you need to detect macOS temperature just run the following additional
installation command:
+For Intel based machines (deprecated lib) install
+
```bash
$ npm install osx-temperature-sensor --save
```
+For Apple Silicon (ARM) based machines install
+
+```bash
+$ npm install macos-temperature-sensor --save
+```
+
`systeminformation` will then detect this additional library and return the
temperature when calling systeminformations standard function `cpuTemperature()`
@@ -1163,7 +1169,7 @@ trademark of Fabrice Bellard, bochs is a trademark of The Bochs Project, USB and
USB Logo are trademarks of USB Implementation Forum, Bluetooth and Bluetooth
Logo are trademarks of Bluetooth SIG, Android is a trademark of Google LLC,
Parallels is a trademarks of Parallels International GmbH. Bun is a trademark of
-Codeblog Corp. Deno is a trademark of Deno Land Inc.
+Codeblog Corp. Deno is a trademark of Deno Land Inc. Arm is a trademark of Arm Limited.
All other trademarks are the property of their respective owners.
diff --git a/docs/trademarks.html b/docs/trademarks.html
index 1a8264c..3f56676 100644
--- a/docs/trademarks.html
+++ b/docs/trademarks.html
@@ -50,6 +50,7 @@
AMD is a trademark of Advanced Micro Devices Inc.
Android is a trademark of Google LLC.
Apple, macOS, OS X, CUPS are registered trademarks of Apple Inc.
+ Arm is a trademark of Arm Limited
ASUS is a registered trademark of ASUSTeK Computer.
Bluetooth and Bluetooth Logo are trademarks of Bluetooth SIG..
bochs is a trademark of The Bochs Project
diff --git a/lib/index.js b/lib/index.js
index 81d5efb..a48376d 100644
--- a/lib/index.js
+++ b/lib/index.js
@@ -42,12 +42,12 @@ const usb = require('./usb');
const audio = require('./audio');
const bluetooth = require('./bluetooth');
-let _platform = process.platform;
-const _windows = (_platform === 'win32');
-const _freebsd = (_platform === 'freebsd');
-const _openbsd = (_platform === 'openbsd');
-const _netbsd = (_platform === 'netbsd');
-const _sunos = (_platform === 'sunos');
+const _platform = process.platform;
+const _windows = _platform === 'win32';
+const _freebsd = _platform === 'freebsd';
+const _openbsd = _platform === 'openbsd';
+const _netbsd = _platform === 'netbsd';
+const _sunos = _platform === 'sunos';
// ----------------------------------------------------------------------------------
// init
@@ -74,11 +74,9 @@ function version() {
// get static data - they should not change until restarted
function getStaticData(callback) {
-
return new Promise((resolve) => {
process.nextTick(() => {
-
- let data = {};
+ const data = {};
data.version = version();
@@ -99,7 +97,7 @@ function getStaticData(callback) {
audio.audio(),
bluetooth.bluetoothDevices(),
usb.usb(),
- printer.printer(),
+ printer.printer()
]).then((res) => {
data.system = res[0];
data.bios = res[1];
@@ -118,14 +116,15 @@ function getStaticData(callback) {
data.bluetooth = res[14];
data.usb = res[15];
data.printer = res[16];
- if (callback) { callback(data); }
+ if (callback) {
+ callback(data);
+ }
resolve(data);
});
});
});
}
-
// --------------------------
// get all dynamic data - e.g. for monitoring agents
// may take some seconds to get all data
@@ -135,7 +134,6 @@ function getStaticData(callback) {
// - iface: define network interface for which you like to monitor network speed e.g. "eth0"
function getDynamicData(srv, iface, callback) {
-
if (util.isFunction(iface)) {
callback = iface;
iface = '';
@@ -147,16 +145,21 @@ function getDynamicData(srv, iface, callback) {
return new Promise((resolve) => {
process.nextTick(() => {
-
iface = iface || network.getDefaultNetworkInterface();
srv = srv || '';
// use closure to track ƒ completion
- let functionProcessed = (function () {
+ let functionProcessed = (() => {
let totalFunctions = 15;
- if (_windows) { totalFunctions = 13; }
- if (_freebsd || _openbsd || _netbsd) { totalFunctions = 11; }
- if (_sunos) { totalFunctions = 6; }
+ if (_windows) {
+ totalFunctions = 13;
+ }
+ if (_freebsd || _openbsd || _netbsd) {
+ totalFunctions = 11;
+ }
+ if (_sunos) {
+ totalFunctions = 6;
+ }
return function () {
if (--totalFunctions === 0) {
@@ -168,7 +171,7 @@ function getDynamicData(srv, iface, callback) {
};
})();
- let data = {};
+ const data = {};
// get time
data.time = osInfo.time();
@@ -286,7 +289,6 @@ function getDynamicData(srv, iface, callback) {
// - iface: define network interface for which you like to monitor network speed e.g. "eth0"
function getAllData(srv, iface, callback) {
-
return new Promise((resolve) => {
process.nextTick(() => {
let data = {};
@@ -310,7 +312,9 @@ function getAllData(srv, iface, callback) {
data[key] = res[key];
}
}
- if (callback) { callback(data); }
+ if (callback) {
+ callback(data);
+ }
resolve(data);
});
});
@@ -322,8 +326,8 @@ function get(valueObject, callback) {
return new Promise((resolve) => {
process.nextTick(() => {
const allPromises = Object.keys(valueObject)
- .filter(func => ({}.hasOwnProperty.call(exports, func)))
- .map(func => {
+ .filter((func) => ({}).hasOwnProperty.call(exports, func))
+ .map((func) => {
const params = valueObject[func].substring(valueObject[func].lastIndexOf('(') + 1, valueObject[func].lastIndexOf(')'));
let funcWithoutParams = func.indexOf(')') >= 0 ? func.split(')')[1].trim() : func;
funcWithoutParams = func.indexOf('|') >= 0 ? func.split('|')[0].trim() : funcWithoutParams;
@@ -361,12 +365,12 @@ function get(valueObject, callback) {
if (Array.isArray(data[i])) {
// result is in an array, go through all elements of array and pick only the right ones
const partialArray = [];
- data[i].forEach(element => {
+ data[i].forEach((element) => {
let partialRes = {};
if (keys.length === 1 && (keys[0] === '*' || keys[0] === 'all')) {
partialRes = element;
} else {
- keys.forEach(k => {
+ keys.forEach((k) => {
if ({}.hasOwnProperty.call(element, k)) {
partialRes[k] = element[k];
}
@@ -376,11 +380,11 @@ function get(valueObject, callback) {
if (filter && filterParts.length === 2) {
if ({}.hasOwnProperty.call(partialRes, filterParts[0].trim())) {
const val = partialRes[filterParts[0].trim()];
- if (typeof val == 'number') {
+ if (typeof val === 'number') {
if (val === parseFloat(filterParts[1].trim())) {
partialArray.push(partialRes);
}
- } else if (typeof val == 'string') {
+ } else if (typeof val === 'string') {
if (val.toLowerCase() === filterParts[1].trim().toLowerCase()) {
partialArray.push(partialRes);
}
@@ -389,12 +393,11 @@ function get(valueObject, callback) {
} else {
partialArray.push(partialRes);
}
-
});
result[key] = partialArray;
} else {
const partialRes = {};
- keys.forEach(k => {
+ keys.forEach((k) => {
if ({}.hasOwnProperty.call(data[i], k)) {
partialRes[k] = data[i][k];
}
@@ -408,7 +411,9 @@ function get(valueObject, callback) {
i++;
}
}
- if (callback) { callback(result); }
+ if (callback) {
+ callback(result);
+ }
resolve(result);
});
});
diff --git a/lib/osinfo.js b/lib/osinfo.js
index e4274de..59b47ba 100644
--- a/lib/osinfo.js
+++ b/lib/osinfo.js
@@ -21,13 +21,13 @@ const execSync = require('child_process').execSync;
let _platform = process.platform;
-const _linux = (_platform === 'linux' || _platform === 'android');
-const _darwin = (_platform === 'darwin');
-const _windows = (_platform === 'win32');
-const _freebsd = (_platform === 'freebsd');
-const _openbsd = (_platform === 'openbsd');
-const _netbsd = (_platform === 'netbsd');
-const _sunos = (_platform === 'sunos');
+const _linux = _platform === 'linux' || _platform === 'android';
+const _darwin = _platform === 'darwin';
+const _windows = _platform === 'win32';
+const _freebsd = _platform === 'freebsd';
+const _openbsd = _platform === 'openbsd';
+const _netbsd = _platform === 'netbsd';
+const _sunos = _platform === 'sunos';
// --------------------------
// Get current time and OS uptime
@@ -38,12 +38,12 @@ function time() {
try {
timezoneName = Intl.DateTimeFormat().resolvedOptions().timeZone;
} catch {
- timezoneName = (t.length >= 7) ? t.slice(6).join(' ').replace(/\(/g, '').replace(/\)/g, '') : '';
+ timezoneName = t.length >= 7 ? t.slice(6).join(' ').replace(/\(/g, '').replace(/\)/g, '') : '';
}
const result = {
current: Date.now(),
uptime: os.uptime(),
- timezone: (t.length >= 7) ? t[5] : '',
+ timezone: t.length >= 7 ? t[5] : '',
timezoneName
};
if (_darwin || _linux) {
@@ -61,7 +61,7 @@ function time() {
current: Date.now(),
uptime: os.uptime(),
timezone: lines[1] ? timezone + lines[1] : timezone,
- timezoneName: lines[2] && lines[2].indexOf('/zoneinfo/') > 0 ? (lines[2].split('/zoneinfo/')[1] || '') : ''
+ timezoneName: lines[2] && lines[2].indexOf('/zoneinfo/') > 0 ? lines[2].split('/zoneinfo/')[1] || '' : ''
};
} catch (e) {
util.noop();
@@ -81,116 +81,79 @@ function getLogoFile(distro) {
let result = _platform;
if (_windows) {
result = 'windows';
- }
- else if (distro.indexOf('mac os') !== -1 || distro.indexOf('macos') !== -1) {
+ } else if (distro.indexOf('mac os') !== -1 || distro.indexOf('macos') !== -1) {
result = 'apple';
- }
- else if (distro.indexOf('arch') !== -1) {
+ } else if (distro.indexOf('arch') !== -1) {
result = 'arch';
- }
- else if (distro.indexOf('cachy') !== -1) {
+ } else if (distro.indexOf('cachy') !== -1) {
result = 'cachy';
- }
- else if (distro.indexOf('centos') !== -1) {
+ } else if (distro.indexOf('centos') !== -1) {
result = 'centos';
- }
- else if (distro.indexOf('coreos') !== -1) {
+ } else if (distro.indexOf('coreos') !== -1) {
result = 'coreos';
- }
- else if (distro.indexOf('debian') !== -1) {
+ } else if (distro.indexOf('debian') !== -1) {
result = 'debian';
- }
- else if (distro.indexOf('deepin') !== -1) {
+ } else if (distro.indexOf('deepin') !== -1) {
result = 'deepin';
- }
- else if (distro.indexOf('elementary') !== -1) {
+ } else if (distro.indexOf('elementary') !== -1) {
result = 'elementary';
- }
- else if (distro.indexOf('endeavour') !== -1) {
+ } else if (distro.indexOf('endeavour') !== -1) {
result = 'endeavour';
- }
- else if (distro.indexOf('fedora') !== -1) {
+ } else if (distro.indexOf('fedora') !== -1) {
result = 'fedora';
- }
- else if (distro.indexOf('gentoo') !== -1) {
+ } else if (distro.indexOf('gentoo') !== -1) {
result = 'gentoo';
- }
- else if (distro.indexOf('mageia') !== -1) {
+ } else if (distro.indexOf('mageia') !== -1) {
result = 'mageia';
- }
- else if (distro.indexOf('mandriva') !== -1) {
+ } else if (distro.indexOf('mandriva') !== -1) {
result = 'mandriva';
- }
- else if (distro.indexOf('manjaro') !== -1) {
+ } else if (distro.indexOf('manjaro') !== -1) {
result = 'manjaro';
- }
- else if (distro.indexOf('mint') !== -1) {
+ } else if (distro.indexOf('mint') !== -1) {
result = 'mint';
- }
- else if (distro.indexOf('mx') !== -1) {
+ } else if (distro.indexOf('mx') !== -1) {
result = 'mx';
- }
- else if (distro.indexOf('openbsd') !== -1) {
+ } else if (distro.indexOf('openbsd') !== -1) {
result = 'openbsd';
- }
- else if (distro.indexOf('freebsd') !== -1) {
+ } else if (distro.indexOf('freebsd') !== -1) {
result = 'freebsd';
- }
- else if (distro.indexOf('opensuse') !== -1) {
+ } else if (distro.indexOf('opensuse') !== -1) {
result = 'opensuse';
- }
- else if (distro.indexOf('pclinuxos') !== -1) {
+ } else if (distro.indexOf('pclinuxos') !== -1) {
result = 'pclinuxos';
- }
- else if (distro.indexOf('puppy') !== -1) {
+ } else if (distro.indexOf('puppy') !== -1) {
result = 'puppy';
- }
- else if (distro.indexOf('popos') !== -1) {
+ } else if (distro.indexOf('popos') !== -1) {
result = 'popos';
- }
- else if (distro.indexOf('raspbian') !== -1) {
+ } else if (distro.indexOf('raspbian') !== -1) {
result = 'raspbian';
- }
- else if (distro.indexOf('reactos') !== -1) {
+ } else if (distro.indexOf('reactos') !== -1) {
result = 'reactos';
- }
- else if (distro.indexOf('redhat') !== -1) {
+ } else if (distro.indexOf('redhat') !== -1) {
result = 'redhat';
- }
- else if (distro.indexOf('slackware') !== -1) {
+ } else if (distro.indexOf('slackware') !== -1) {
result = 'slackware';
- }
- else if (distro.indexOf('sugar') !== -1) {
+ } else if (distro.indexOf('sugar') !== -1) {
result = 'sugar';
- }
- else if (distro.indexOf('steam') !== -1) {
+ } else if (distro.indexOf('steam') !== -1) {
result = 'steam';
- }
- else if (distro.indexOf('suse') !== -1) {
+ } else if (distro.indexOf('suse') !== -1) {
result = 'suse';
- }
- else if (distro.indexOf('mate') !== -1) {
+ } else if (distro.indexOf('mate') !== -1) {
result = 'ubuntu-mate';
- }
- else if (distro.indexOf('lubuntu') !== -1) {
+ } else if (distro.indexOf('lubuntu') !== -1) {
result = 'lubuntu';
- }
- else if (distro.indexOf('xubuntu') !== -1) {
+ } else if (distro.indexOf('xubuntu') !== -1) {
result = 'xubuntu';
- }
- else if (distro.indexOf('ubuntu') !== -1) {
+ } else if (distro.indexOf('ubuntu') !== -1) {
result = 'ubuntu';
- }
- else if (distro.indexOf('solaris') !== -1) {
+ } else if (distro.indexOf('solaris') !== -1) {
result = 'solaris';
- }
- else if (distro.indexOf('tails') !== -1) {
+ } else if (distro.indexOf('tails') !== -1) {
result = 'tails';
- }
- else if (distro.indexOf('feren') !== -1) {
+ } else if (distro.indexOf('feren') !== -1) {
result = 'ferenos';
- }
- else if (distro.indexOf('robolinux') !== -1) {
+ } else if (distro.indexOf('robolinux') !== -1) {
result = 'robolinux';
} else if (_linux && distro) {
result = distro.toLowerCase().trim().replace(/\s+/g, '-');
@@ -234,12 +197,10 @@ function getFQDN() {
// OS Information
function osInfo(callback) {
-
return new Promise((resolve) => {
process.nextTick(() => {
let result = {
-
- platform: (_platform === 'win32' ? 'Windows' : _platform),
+ platform: _platform === 'win32' ? 'Windows' : _platform,
distro: 'unknown',
release: 'unknown',
codename: '',
@@ -256,7 +217,6 @@ function osInfo(callback) {
};
if (_linux) {
-
exec('cat /etc/*-release; cat /usr/lib/os-release; cat /etc/openwrt_release', function (error, stdout) {
/**
* @namespace
@@ -289,7 +249,7 @@ function osInfo(callback) {
result.codename = codename;
result.codepage = util.getCodepage();
result.build = (release.BUILD_ID || '').replace(/"/g, '').trim();
- isUefiLinux().then(uefi => {
+ isUefiLinux().then((uefi) => {
result.uefi = uefi;
uuid().then((data) => {
result.serial = data.os;
@@ -302,7 +262,6 @@ function osInfo(callback) {
});
}
if (_freebsd || _openbsd || _netbsd) {
-
exec('sysctl kern.ostype kern.osrelease kern.osrevision kern.hostuuid machdep.bootmethod kern.geom.confxml', function (error, stdout) {
let lines = stdout.toString().split('\n');
const distro = util.getValue(lines, 'kern.ostype');
@@ -311,7 +270,7 @@ function osInfo(callback) {
const serial = util.getValue(lines, 'kern.uuid');
const bootmethod = util.getValue(lines, 'machdep.bootmethod');
const uefiConf = stdout.toString().indexOf('efi') >= 0;
- const uefi = bootmethod ? bootmethod.toLowerCase().indexOf('uefi') >= 0 : (uefiConf ? uefiConf : null);
+ const uefi = bootmethod ? bootmethod.toLowerCase().indexOf('uefi') >= 0 : uefiConf ? uefiConf : null;
result.distro = distro || result.distro;
result.logofile = logofile || result.logofile;
result.release = release || result.release;
@@ -334,25 +293,24 @@ function osInfo(callback) {
result.build = util.getValue(lines, 'BuildVersion');
result.logofile = getLogoFile(result.distro);
result.codename = 'macOS';
- result.codename = (result.release.indexOf('10.4') > -1 ? 'OS X Tiger' : result.codename);
- result.codename = (result.release.indexOf('10.5') > -1 ? 'OS X Leopard' : result.codename);
- result.codename = (result.release.indexOf('10.6') > -1 ? 'OS X Snow Leopard' : result.codename);
- result.codename = (result.release.indexOf('10.7') > -1 ? '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 ? 'Sierra' : result.codename);
- result.codename = (result.release.indexOf('10.13') > -1 ? 'High Sierra' : result.codename);
- result.codename = (result.release.indexOf('10.14') > -1 ? 'Mojave' : result.codename);
- result.codename = (result.release.indexOf('10.15') > -1 ? 'Catalina' : result.codename);
- result.codename = (result.release.startsWith('11.') ? 'Big Sur' : result.codename);
- result.codename = (result.release.startsWith('12.') ? 'Monterey' : result.codename);
- result.codename = (result.release.startsWith('13.') ? 'Ventura' : result.codename);
- result.codename = (result.release.startsWith('14.') ? 'Sonoma' : result.codename);
- result.codename = (result.release.startsWith('15.') ? 'Sequoia' : result.codename);
- result.codename = (result.release.startsWith('16.') ? 'Tahoe' : result.codename);
- result.codename = (result.release.startsWith('26.') ? 'Tahoe' : result.codename);
+ result.codename = result.release.indexOf('10.4') > -1 ? 'OS X Tiger' : result.codename;
+ result.codename = result.release.indexOf('10.5') > -1 ? 'OS X Leopard' : result.codename;
+ result.codename = result.release.indexOf('10.6') > -1 ? 'OS X Snow Leopard' : result.codename;
+ result.codename = result.release.indexOf('10.7') > -1 ? '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 ? 'Sierra' : result.codename;
+ result.codename = result.release.indexOf('10.13') > -1 ? 'High Sierra' : result.codename;
+ result.codename = result.release.indexOf('10.14') > -1 ? 'Mojave' : result.codename;
+ result.codename = result.release.indexOf('10.15') > -1 ? 'Catalina' : result.codename;
+ result.codename = result.release.startsWith('11.') ? 'Big Sur' : result.codename;
+ result.codename = result.release.startsWith('12.') ? 'Monterey' : result.codename;
+ result.codename = result.release.startsWith('13.') ? 'Ventura' : result.codename;
+ result.codename = result.release.startsWith('14.') ? 'Sonoma' : result.codename;
+ result.codename = result.release.startsWith('15.') ? 'Sequoia' : result.codename;
+ result.codename = result.release.startsWith('26.') ? 'Tahoe' : result.codename;
result.uefi = true;
result.codepage = util.getCodepage();
if (callback) {
@@ -367,7 +325,9 @@ function osInfo(callback) {
let lines = stdout.toString().split('\n');
result.distro = lines[0];
result.logofile = getLogoFile(result.distro);
- if (callback) { callback(result); }
+ if (callback) {
+ callback(result);
+ }
resolve(result);
});
}
@@ -379,9 +339,7 @@ function osInfo(callback) {
workload.push(util.powerShell('Get-CimInstance Win32_OperatingSystem | select Caption,SerialNumber,BuildNumber,ServicePackMajorVersion,ServicePackMinorVersion | fl'));
workload.push(util.powerShell('(Get-CimInstance Win32_ComputerSystem).HypervisorPresent'));
workload.push(util.powerShell('Add-Type -AssemblyName System.Windows.Forms; [System.Windows.Forms.SystemInformation]::TerminalServerSession'));
- util.promiseAll(
- workload
- ).then((data) => {
+ util.promiseAll(workload).then((data) => {
let lines = data.results[0] ? data.results[0].toString().split('\r\n') : [''];
result.distro = util.getValue(lines, 'Caption', ':').trim();
result.serial = util.getValue(lines, 'SerialNumber', ':').trim();
@@ -391,8 +349,8 @@ function osInfo(callback) {
const hyperv = data.results[1] ? data.results[1].toString().toLowerCase() : '';
result.hypervisor = hyperv.indexOf('true') !== -1;
const term = data.results[2] ? data.results[2].toString() : '';
- result.remoteSession = (term.toString().toLowerCase().indexOf('true') >= 0);
- isUefiWindows().then(uefi => {
+ result.remoteSession = term.toString().toLowerCase().indexOf('true') >= 0;
+ isUefiWindows().then((uefi) => {
result.uefi = uefi;
if (callback) {
callback(result);
@@ -401,7 +359,9 @@ function osInfo(callback) {
});
});
} catch (e) {
- if (callback) { callback(result); }
+ if (callback) {
+ callback(result);
+ }
resolve(result);
}
}
@@ -513,7 +473,7 @@ function versions(apps, callback) {
versions: {},
counter: 0
};
- apps.forEach(el => {
+ apps.forEach((el) => {
if (el) {
for (let key in versionObject) {
if ({}.hasOwnProperty.call(versionObject, key)) {
@@ -524,7 +484,9 @@ function versions(apps, callback) {
result.versions.systemOpensslLib = '';
}
- if (!result.versions[key]) { result.counter++; }
+ if (!result.versions[key]) {
+ result.counter++;
+ }
}
}
}
@@ -542,7 +504,9 @@ function versions(apps, callback) {
} else {
apps = apps || '*';
if (typeof apps !== 'string') {
- if (callback) { callback({}); }
+ if (callback) {
+ callback({});
+ }
return resolve({});
}
}
@@ -684,7 +648,7 @@ function versions(apps, callback) {
exec('apachectl -v 2>&1', function (error, stdout) {
if (!error) {
const apache = (stdout.toString().split('\n')[0] || '').split(':');
- appsObj.versions.apache = (apache.length > 1 ? apache[1].replace('Apache', '').replace('/', '').split('(')[0].trim() : '');
+ appsObj.versions.apache = apache.length > 1 ? apache[1].replace('Apache', '').replace('/', '').split('(')[0].trim() : '';
}
functionProcessed();
});
@@ -854,7 +818,7 @@ function versions(apps, callback) {
const gitHomebrewExists1 = fs.existsSync('/usr/local/Cellar/python');
const gitHomebrewExists2 = fs.existsSync('/opt/homebrew/bin/python');
if ((util.darwinXcodeExists() && util.semverCompare('12.0.1', osVersion) < 0) || gitHomebrewExists1 || gitHomebrewExists2) {
- const cmd = gitHomebrewExists1 ? '/usr/local/Cellar/python -V 2>&1' : (gitHomebrewExists2 ? '/opt/homebrew/bin/python -V 2>&1' : 'python -V 2>&1');
+ const cmd = gitHomebrewExists1 ? '/usr/local/Cellar/python -V 2>&1' : gitHomebrewExists2 ? '/opt/homebrew/bin/python -V 2>&1' : 'python -V 2>&1';
exec(cmd, function (error, stdout) {
if (!error) {
const python = stdout.toString().split('\n')[0] || '';
@@ -868,7 +832,6 @@ function versions(apps, callback) {
} catch (e) {
functionProcessed();
}
-
} else {
exec('python -V 2>&1', function (error, stdout) {
if (!error) {
@@ -1080,7 +1043,9 @@ function versions(apps, callback) {
exec('node -v', function (error, stdout) {
if (!error) {
let line = stdout.toString().split('\n')[0].trim();
- if (line.startsWith('v')) { line = line.slice(1); }
+ if (line.startsWith('v')) {
+ line = line.slice(1);
+ }
appsObj.versions.node = line;
}
functionProcessed();
@@ -1088,8 +1053,12 @@ function versions(apps, callback) {
}
if ({}.hasOwnProperty.call(appsObj.versions, 'powershell')) {
if (_windows) {
- util.powerShell('$PSVersionTable').then(stdout => {
- const lines = stdout.toString().toLowerCase().split('\n').map(line => line.replace(/ +/g, ' ').replace(/ +/g, ':'));
+ util.powerShell('$PSVersionTable').then((stdout) => {
+ const lines = stdout
+ .toString()
+ .toLowerCase()
+ .split('\n')
+ .map((line) => line.replace(/ +/g, ' ').replace(/ +/g, ':'));
appsObj.versions.powershell = util.getValue(lines, 'psversion');
functionProcessed();
});
@@ -1099,23 +1068,31 @@ function versions(apps, callback) {
}
if ({}.hasOwnProperty.call(appsObj.versions, 'dotnet')) {
if (_windows) {
- util.powerShell('gci "HKLM:\\SOFTWARE\\Microsoft\\NET Framework Setup\\NDP" -recurse | gp -name Version,Release -EA 0 | where { $_.PSChildName -match "^(?!S)\\p{L}"} | select PSChildName, Version, Release').then(stdout => {
- const lines = stdout.toString().split('\r\n');
- let dotnet = '';
- lines.forEach(line => {
- line = line.replace(/ +/g, ' ');
- const parts = line.split(' ');
- dotnet = dotnet || (parts[0].toLowerCase().startsWith('client') && parts.length > 2 ? parts[1].trim() : (parts[0].toLowerCase().startsWith('full') && parts.length > 2 ? parts[1].trim() : ''));
+ util
+ .powerShell(
+ 'gci "HKLM:\\SOFTWARE\\Microsoft\\NET Framework Setup\\NDP" -recurse | gp -name Version,Release -EA 0 | where { $_.PSChildName -match "^(?!S)\\p{L}"} | select PSChildName, Version, Release'
+ )
+ .then((stdout) => {
+ const lines = stdout.toString().split('\r\n');
+ let dotnet = '';
+ lines.forEach((line) => {
+ line = line.replace(/ +/g, ' ');
+ const parts = line.split(' ');
+ dotnet =
+ dotnet ||
+ (parts[0].toLowerCase().startsWith('client') && parts.length > 2 ? parts[1].trim() : parts[0].toLowerCase().startsWith('full') && parts.length > 2 ? parts[1].trim() : '');
+ });
+ appsObj.versions.dotnet = dotnet.trim();
+ functionProcessed();
});
- appsObj.versions.dotnet = dotnet.trim();
- functionProcessed();
- });
} else {
functionProcessed();
}
}
} catch (e) {
- if (callback) { callback(appsObj.versions); }
+ if (callback) {
+ callback(appsObj.versions);
+ }
resolve(appsObj.versions);
}
});
@@ -1130,7 +1107,7 @@ function shell(callback) {
if (_windows) {
try {
const result = 'CMD';
- util.powerShell(`Get-CimInstance -className win32_process | where-object {$_.ProcessId -eq ${process.ppid} } | select Name`).then(stdout => {
+ util.powerShell(`Get-CimInstance -className win32_process | where-object {$_.ProcessId -eq ${process.ppid} } | select Name`).then((stdout) => {
let result = 'CMD';
if (stdout) {
if (stdout.toString().toLowerCase().indexOf('powershell') >= 0) {
@@ -1183,8 +1160,12 @@ function getUniqueMacAdresses() {
}
}
macs = macs.sort(function (a, b) {
- if (a < b) { return -1; }
- if (a > b) { return 1; }
+ if (a < b) {
+ return -1;
+ }
+ if (a > b) {
+ return 1;
+ }
return 0;
});
} catch (e) {
@@ -1196,7 +1177,6 @@ function getUniqueMacAdresses() {
function uuid(callback) {
return new Promise((resolve) => {
process.nextTick(() => {
-
let result = {
os: '',
hardware: '',
@@ -1248,8 +1228,12 @@ echo -n "hardware: "; cat /sys/class/dmi/id/product_uuid 2> /dev/null; echo;`;
const lines = stdout.toString().split('\n');
result.hardware = util.getValue(lines, 'kern.hostid', ':').toLowerCase();
result.os = util.getValue(lines, 'kern.hostuuid', ':').toLowerCase();
- if (result.os.indexOf('unknown') >= 0) { result.os = ''; }
- if (result.hardware.indexOf('unknown') >= 0) { result.hardware = ''; }
+ if (result.os.indexOf('unknown') >= 0) {
+ result.os = '';
+ }
+ if (result.hardware.indexOf('unknown') >= 0) {
+ result.hardware = '';
+ }
if (callback) {
callback(result);
}
@@ -1266,7 +1250,7 @@ echo -n "hardware: "; cat /sys/class/dmi/id/product_uuid 2> /dev/null; echo;`;
result.hardware = util.getValue(lines, 'uuid', ':').toLowerCase();
exec(`${sysdir}\\reg query "HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Cryptography" /v MachineGuid`, util.execOptsWin, function (error, stdout) {
parts = stdout.toString().split('\n\r')[0].split('REG_SZ');
- result.os = parts.length > 1 ? parts[1].replace(/\r+|\n+|\s+/ig, '').toLowerCase() : '';
+ result.os = parts.length > 1 ? parts[1].replace(/\r+|\n+|\s+/gi, '').toLowerCase() : '';
if (callback) {
callback(result);
}