diff --git a/lib/osinfo.js b/lib/osinfo.js index 2657afe..6682f9b 100644 --- a/lib/osinfo.js +++ b/lib/osinfo.js @@ -13,13 +13,12 @@ // 3. Operating System // ---------------------------------------------------------------------------------- -const nodeUtil = require('util'); +const os = require('os'); +const fs = require('fs'); +const util = require('./util'); const exec = require('child_process').exec; const execSync = require('child_process').execSync; -const execPromise = nodeUtil.promisify(require('child_process').exec); -const os = require('os'); -const util = require('./util'); -const fs = require('fs'); +const execPromise = util.promisify(require('child_process').exec); let _platform = process.platform; @@ -334,7 +333,7 @@ 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(); - const systeminfo = data.results[1] ? data.results[1].stdout.toString() : ''; + const systeminfo = data.results[1] ? data.results[1].toString() : ''; result.hypervisor = (systeminfo.indexOf('hypervisor has been detected') !== -1) || (systeminfo.indexOf('Es wurde ein Hypervisor erkannt') !== -1) || (systeminfo.indexOf('Un hyperviseur a ') !== -1); isUefiWindows().then(uefi => { result.uefi = uefi; diff --git a/lib/system.js b/lib/system.js index 4a4c3fa..03f8cac 100644 --- a/lib/system.js +++ b/lib/system.js @@ -13,13 +13,12 @@ // 2. System (Hardware, BIOS, Base Board) // ---------------------------------------------------------------------------------- -const nodeUtil = require('util'); -const exec = require('child_process').exec; -const execSync = require('child_process').execSync; -const execPromise = nodeUtil.promisify(require('child_process').exec); const fs = require('fs'); const os = require('os'); const util = require('./util'); +const exec = require('child_process').exec; +const execSync = require('child_process').execSync; +const execPromise = util.promisify(require('child_process').exec); let _platform = process.platform; @@ -585,7 +584,7 @@ function baseboard(callback) { util.promiseAll( workload ).then(data => { - let lines = data.results[0] ? data.results[0].stdout.toString().split('\n') : ['']; + let lines = data.results[0] ? data.results[0].toString().split('\n') : ['']; result.manufacturer = util.getValue(lines, 'Manufacturer'); result.model = util.getValue(lines, 'Product Name'); result.version = util.getValue(lines, 'Version'); @@ -611,7 +610,7 @@ function baseboard(callback) { if (result.assetTag.toLowerCase().indexOf('o.e.m.') !== -1) { result.assetTag = '-'; } // mem - lines = data.results[1] ? data.results[1].stdout.toString().split('\n') : ['']; + lines = data.results[1] ? data.results[1].toString().split('\n') : ['']; result.memMax = util.toInt(util.getValue(lines, 'Maximum Capacity')) * 1024 * 1024 * 1024 || null; result.memSlots = util.toInt(util.getValue(lines, 'Number Of Devices')) || null; @@ -639,7 +638,7 @@ function baseboard(callback) { util.promiseAll( workload ).then(data => { - let lines = data.results[0] ? data.results[0].stdout.toString().replace(/[<>"]/g, '').split('\n') : ['']; + let lines = data.results[0] ? data.results[0].toString().replace(/[<>"]/g, '').split('\n') : ['']; result.manufacturer = util.getValue(lines, 'manufacturer', '=', true); result.model = util.getValue(lines, 'model', '=', true); result.version = util.getValue(lines, 'version', '=', true); @@ -647,9 +646,9 @@ function baseboard(callback) { result.assetTag = util.getValue(lines, 'board-id', '=', true); // mem - let devices = data.results[1] ? data.results[1].stdout.toString().split(' BANK ') : ['']; + let devices = data.results[1] ? data.results[1].toString().split(' BANK ') : ['']; if (devices.length === 1) { - devices = data.results[1] ? data.results[1].stdout.toString().split(' DIMM') : ['']; + devices = data.results[1] ? data.results[1].toString().split(' DIMM') : ['']; } devices.shift(); result.memSlots = devices.length; diff --git a/lib/util.js b/lib/util.js index 11b403c..00debc9 100644 --- a/lib/util.js +++ b/lib/util.js @@ -871,6 +871,34 @@ function promiseAll(promises) { }); } +function promisify(nodeStyleFunction) { + return function () { + var args = Array.prototype.slice.call(arguments); + return new Promise(function (resolve, reject) { + args.push(function (err, data) { + if (err) { + reject(err); + } else { + resolve(data); + } + }); + nodeStyleFunction.apply(null, args); + }); + }; +} + +function linuxVersion() { + let result = ''; + if (_linux) { + try { + result = execSync('uname -v').toString(); + } catch (e) { + result = ''; + } + } + return result; +} + function noop() { } exports.toInt = toInt; @@ -901,6 +929,8 @@ exports.sanitizeShellString = sanitizeShellString; exports.isPrototypePolluted = isPrototypePolluted; exports.decodePiCpuinfo = decodePiCpuinfo; exports.promiseAll = promiseAll; +exports.promisify = promisify; +exports.linuxVersion = linuxVersion; exports.stringReplace = stringReplace; exports.stringToLower = stringToLower; exports.stringToString = stringToString;