xuxiaobo-bobo e6520392ec '...'
2024-03-18 11:14:05 +08:00

92 lines
4.0 KiB
JavaScript

#!/usr/bin/env node
'use strict';
// @ts-check
// ==================================================================================
// cli.js
// ----------------------------------------------------------------------------------
// Description: System Information - library
// for Node.js
// Copyright: (c) 2014 - 2024
// Author: Sebastian Hildebrandt
// ----------------------------------------------------------------------------------
// License: MIT
// ==================================================================================
// ----------------------------------------------------------------------------------
// Dependencies
// ----------------------------------------------------------------------------------
const si = require('./index');
const lib_version = require('../package.json').version;
function capFirst(string) {
return string[0].toUpperCase() + string.slice(1);
}
function printLines(obj) {
for (const property in obj) {
console.log(capFirst(property) + ' '.substring(0, 17 - property.length) + ': ' + (obj[property] || ''));
}
console.log();
}
function info() {
console.log('┌─────────────────────────────────────────────────────────────────────────────────────────┐');
console.log('│ SYSTEMINFORMATION '.substring(0, 80 - lib_version.length) + 'Version: ' + lib_version + ' │');
console.log('└─────────────────────────────────────────────────────────────────────────────────────────┘');
si.osInfo().then(res => {
console.log();
console.log('Operating System:');
console.log('──────────────────────────────────────────────────────────────────────────────────────────');
delete res.serial;
delete res.servicepack;
delete res.logofile;
delete res.fqdn;
delete res.uefi;
printLines(res);
si.system().then(res => {
console.log('System:');
console.log('──────────────────────────────────────────────────────────────────────────────────────────');
delete res.serial;
delete res.uuid;
delete res.sku;
delete res.uuid;
printLines(res);
si.cpu().then(res => {
console.log('CPU:');
console.log('──────────────────────────────────────────────────────────────────────────────────────────');
delete res.cache;
delete res.governor;
delete res.flags;
delete res.virtualization;
delete res.revision;
delete res.voltage;
delete res.vendor;
delete res.speedMin;
delete res.speedMax;
printLines(res);
});
});
});
}
// ----------------------------------------------------------------------------------
// Main
// ----------------------------------------------------------------------------------
(function () {
const args = process.argv.slice(2);
if (args[0] === 'info') {
info();
} else {
si.getStaticData().then(
((data) => {
data.time = si.time();
console.log(JSON.stringify(data, null, 2));
}
));
}
})();