const cache = require('./cache.js'); const commands = require('./commands.js'); const os = require('os'); function getHostname() { return os.hostname(); } function getUptime() { return os.uptime(); } function getLoadAverage(index) { var loadAverage = os.loadavg(); if (index <= loadAverage.length) { return os[index]; } return os.loadavg(); } function getArchitecture() { return os.arch(); } function getOperatingSystem() { return os.release(); } function getType() { return os.type(); } function getPlatform() { return os.platform(); } function getKernelVersion() { return os.version(); } function getCpuInfo() { return os.cpus(); } function getMemoryInfo() { var free = os.freemem(); var total = os.totalmem(); return { total: total, free: free, used: total - free } } async function getTemperature() { try { return commands.execute('vcgencmd', ['measure_temp']); } catch (err) { throw new Error(err); } } function getHostInfo() { return { hostname: getHostname(), uptime: getUptime(), load: getLoadAverage(), arch: getArchitecture(), os: getOperatingSystem(), type: getType(), platform: getPlatform(), kernel: getKernelVersion(), cpu: getCpuInfo(), memory: getMemoryInfo(), }; } module.exports = { getHostname, getUptime, getLoadAverage, getArchitecture, getOperatingSystem, getType, getPlatform, getKernelVersion, getCpuInfo, getMemoryInfo, getTemperature, getHostInfo }