system(), bios(), baseboard - nonroot fallback
This commit is contained in:
parent
f1cd917014
commit
e96f5835c4
@ -13,6 +13,7 @@
|
||||
// ----------------------------------------------------------------------------------
|
||||
|
||||
const exec = require('child_process').exec;
|
||||
const execSync = require('child_process').execSync;
|
||||
const fs = require('fs');
|
||||
const util = require('./util');
|
||||
|
||||
@ -49,12 +50,24 @@ function system(callback) {
|
||||
result.serial = util.getValue(lines, 'serial number');
|
||||
result.uuid = util.getValue(lines, 'uuid');
|
||||
result.sku = util.getValue(lines, 'sku number');
|
||||
if (result.serial.toLowerCase().indexOf('o.e.m.') !== -1) result.serial = '-';
|
||||
if (result.manufacturer.toLowerCase().indexOf('o.e.m.') !== -1) result.manufacturer = '';
|
||||
if (result.model.toLowerCase().indexOf('o.e.m.') !== -1) result.model = 'Computer';
|
||||
if (result.version.toLowerCase().indexOf('o.e.m.') !== -1) result.version = '';
|
||||
if (result.sku.toLowerCase().indexOf('o.e.m.') !== -1) result.sku = '-';
|
||||
// }
|
||||
// Non-Root values
|
||||
const cmd = `echo -n "product_name: "; cat /sys/devices/virtual/dmi/id/product_name 2>&1;
|
||||
echo -n "product_serial: "; cat /sys/devices/virtual/dmi/id/product_serial 2>&1;
|
||||
echo -n "product_uuid: "; cat /sys/devices/virtual/dmi/id/product_uuid 2>&1;
|
||||
echo -n "product_version: "; cat /sys/devices/virtual/dmi/id/product_version 2>&1;
|
||||
echo -n "sys_vendor: "; cat /sys/devices/virtual/dmi/id/sys_vendor 2>&1;`;
|
||||
lines = execSync(cmd).toString().split('\n');
|
||||
result.manufacturer = result.manufacturer === '' ? util.getValue(lines, 'sys_vendor') : result.manufacturer;
|
||||
result.model = result.model === '' ? util.getValue(lines, 'product_name') : result.model;
|
||||
result.version = result.version === '' ? util.getValue(lines, 'product_version') : result.version;
|
||||
result.serial = result.serial === '' ? util.getValue(lines, 'product_serial') : result.serial;
|
||||
result.uuid = result.uuid === '' ? util.getValue(lines, 'product_uuid') : result.uuid;
|
||||
if (!result.serial || result.serial.toLowerCase().indexOf('o.e.m.') !== -1) result.serial = '-';
|
||||
if (!result.manufacturer || result.manufacturer.toLowerCase().indexOf('o.e.m.') !== -1) result.manufacturer = '';
|
||||
if (!result.model || result.model.toLowerCase().indexOf('o.e.m.') !== -1) result.model = 'Computer';
|
||||
if (!result.version || result.version.toLowerCase().indexOf('o.e.m.') !== -1) result.version = '';
|
||||
if (!result.sku || result.sku.toLowerCase().indexOf('o.e.m.') !== -1) result.sku = '-';
|
||||
// detect docker
|
||||
if (fs.existsSync('/.dockerenv') || fs.existsSync('/.dockerinit')) {
|
||||
result.model = 'Docker Container';
|
||||
@ -237,14 +250,21 @@ function bios(callback) {
|
||||
cmd = 'dmidecode --type 0 2>/dev/null';
|
||||
}
|
||||
exec(cmd, function (error, stdout) {
|
||||
if (!error) {
|
||||
let lines = stdout.toString().split('\n');
|
||||
result.vendor = util.getValue(lines, 'Vendor');
|
||||
result.version = util.getValue(lines, 'Version');
|
||||
const datetime = util.getValue(lines, 'Release Date');
|
||||
result.releaseDate = util.parseDateTime(datetime).date;
|
||||
result.revision = util.getValue(lines, 'BIOS Revision');
|
||||
}
|
||||
let lines = stdout.toString().split('\n');
|
||||
result.vendor = util.getValue(lines, 'Vendor');
|
||||
result.version = util.getValue(lines, 'Version');
|
||||
let datetime = util.getValue(lines, 'Release Date');
|
||||
result.releaseDate = util.parseDateTime(datetime).date;
|
||||
result.revision = util.getValue(lines, 'BIOS Revision');
|
||||
// Non-Root values
|
||||
const cmd = `echo -n "bios_date: "; cat /sys/devices/virtual/dmi/id/bios_date 2>&1;
|
||||
echo -n "bios_vendor: "; cat /sys/devices/virtual/dmi/id/bios_vendor 2>&1;
|
||||
echo -n "bios_version: "; cat /sys/devices/virtual/dmi/id/bios_version 2>&1;`;
|
||||
lines = execSync(cmd).toString().split('\n');
|
||||
result.vendor = !result.vendor ? util.getValue(lines, 'bios_vendor') : result.vendor;
|
||||
result.version = !result.version ? util.getValue(lines, 'bios_version') : result.version;
|
||||
datetime = util.getValue(lines, 'bios_date');
|
||||
result.releaseDate = !result.releaseDate ? util.parseDateTime(datetime).date : result.releaseDate;
|
||||
|
||||
if (callback) { callback(result); }
|
||||
resolve(result);
|
||||
@ -321,16 +341,26 @@ function baseboard(callback) {
|
||||
cmd = 'dmidecode -t 2 2>/dev/null';
|
||||
}
|
||||
exec(cmd, function (error, stdout) {
|
||||
if (!error) {
|
||||
let lines = stdout.toString().split('\n');
|
||||
result.manufacturer = util.getValue(lines, 'Manufacturer');
|
||||
result.model = util.getValue(lines, 'Product Name');
|
||||
result.version = util.getValue(lines, 'Version');
|
||||
result.serial = util.getValue(lines, 'Serial Number');
|
||||
result.assetTag = util.getValue(lines, 'Asset Tag');
|
||||
if (result.serial.toLowerCase().indexOf('o.e.m.') !== -1) result.serial = '-';
|
||||
if (result.assetTag.toLowerCase().indexOf('o.e.m.') !== -1) result.assetTag = '-';
|
||||
}
|
||||
let lines = stdout.toString().split('\n');
|
||||
result.manufacturer = util.getValue(lines, 'Manufacturer');
|
||||
result.model = util.getValue(lines, 'Product Name');
|
||||
result.version = util.getValue(lines, 'Version');
|
||||
result.serial = util.getValue(lines, 'Serial Number');
|
||||
result.assetTag = util.getValue(lines, 'Asset Tag');
|
||||
// Non-Root values
|
||||
const cmd = `echo -n "board_asset_tag: "; cat /sys/devices/virtual/dmi/id/board_asset_tag 2>&1;
|
||||
echo -n "board_name: "; cat /sys/devices/virtual/dmi/id/board_name 2>&1;
|
||||
echo -n "board_serial: "; cat /sys/devices/virtual/dmi/id/board_serial 2>&1;
|
||||
echo -n "board_vendor: "; cat /sys/devices/virtual/dmi/id/board_vendor 2>&1;
|
||||
echo -n "board_version: "; cat /sys/devices/virtual/dmi/id/board_version 2>&1;`;
|
||||
lines = execSync(cmd).toString().split('\n');
|
||||
result.manufacturer = !result.manufacturer ? util.getValue(lines, 'board_vendor') : result.manufacturer;
|
||||
result.model = !result.model ? util.getValue(lines, 'board_name') : result.model;
|
||||
result.version = !result.version ? util.getValue(lines, 'board_version') : result.version;
|
||||
result.serial = !result.serial ? util.getValue(lines, 'board_serial') : result.serial;
|
||||
result.assetTag = !result.assetTag ? util.getValue(lines, 'board_asset_tag') : result.assetTag;
|
||||
if (result.serial.toLowerCase().indexOf('o.e.m.') !== -1) result.serial = '-';
|
||||
if (result.assetTag.toLowerCase().indexOf('o.e.m.') !== -1) result.assetTag = '-';
|
||||
|
||||
if (callback) { callback(result); }
|
||||
resolve(result);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user