UNPKG

@znode/os-usage

Version:

os cpu/memory/disk usage

46 lines (45 loc) 1.19 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.disk = void 0; const execa_1 = require("@znode/execa"); async function disk() { const response = await execa_1.default `df -k`; const devices = {}; const combined = response .split('\n') .filter((e) => /^\/dev\//.test(e)) .map((e) => e.split(/\s+/)) .map((e) => ({ device: e[0], total: +e[1], used: +e[2], available: +e[3], usedPercent: e[4], mountPath: e[5], })) // filter the same devices in docker .filter((e) => { if (!devices[e.device]) { devices[e.device] = true; return true; } return false; }) .reduce((all, one) => { all.total += one.total; all.used += +one.used; return all; }, { total: 0, used: 0 }); const total = toG(combined.total); const used = toG(combined.used); return { total, used, percent: ~~((used / total) * 100), }; } exports.disk = disk; function toG(value) { // return value >> 20; // maybe cause error return ~~(value / 1024 ** 2); }