From 13e0935ce083afe8c151ef971f641d30ed34a1cd Mon Sep 17 00:00:00 2001 From: sbwml Date: Sat, 30 Jul 2022 05:59:52 +0800 Subject: [PATCH] cpu --- Makefile | 1 + files/generic/19_cpu.js | 45 +++++++++++++++++++++++++++++++++++++++++ files/generic/luci | 2 +- 3 files changed, 47 insertions(+), 1 deletion(-) create mode 100644 files/generic/19_cpu.js diff --git a/Makefile b/Makefile index 8242911..8f40fbe 100644 --- a/Makefile +++ b/Makefile @@ -51,6 +51,7 @@ define Package/autocore/install/Default $(CP) ./files/generic/luci-mod-status-autocore.json $(1)/usr/share/rpcd/acl.d/ $(INSTALL_DIR) $(1)/www/luci-static/resources/view/status/include + $(INSTALL_DATA) ./files/generic/19_cpu.js $(1)/www/luci-static/resources/view/status/include/ $(INSTALL_DATA) ./files/generic/29_ethinfo.js $(1)/www/luci-static/resources/view/status/include/ endef diff --git a/files/generic/19_cpu.js b/files/generic/19_cpu.js new file mode 100644 index 0000000..1c16dfd --- /dev/null +++ b/files/generic/19_cpu.js @@ -0,0 +1,45 @@ +'use strict'; +'require rpc'; + +var callCPUFreeInfo = rpc.declare({ + object: 'luci', + method: 'getCPUUsage' +}); + +function progressbar(value, max) { + var vn = parseInt(value) || 0, + mn = parseInt(max) || 100, + pc = Math.floor((100 / mn) * vn); + + return E('div', { + 'class': 'cbi-progressbar', + 'title': '%s%% / %s%%'.format(vn, mn, pc) + }, E('div', { 'style': 'width:%.2f%%'.format(pc) })); +} + +return L.Class.extend({ + title: _('CPU'), + + load: function() { + return L.resolveDefault(callCPUFreeInfo(), {}); + }, + + render: function(info) { + var fields = [ + _('Used'), (info.cpuusage) ? info.cpuusage : 0, 100 + ]; + + var table = E('div', { 'class': 'table cpu' }); + + for (var i = 0; i < fields.length; i += 3) { + table.appendChild(E('div', { 'class': 'tr' }, [ + E('div', { 'class': 'td left', 'width': '33%' }, [ fields[i] ]), + E('div', { 'class': 'td left' }, [ + (fields[i + 1] != null) ? progressbar(fields[i + 1], fields[i + 2], true) : '?' + ]) + ])); + } + + return table; + } +}); diff --git a/files/generic/luci b/files/generic/luci index 06ae4c1..ba4adcf 100755 --- a/files/generic/luci +++ b/files/generic/luci @@ -650,7 +650,7 @@ local methods = { local sys = require "luci.sys" local cpuusage = {} - cpuusage.cpuusage = sys.exec("busybox top -n1 | awk '/^CPU/ {printf(\"%d%%\", 100 - $8)}'") or "6%" + cpuusage.cpuusage = sys.exec("busybox top -n1 | awk '/^CPU/ {printf(\"%d%\", 100 - $8)}'") or "6%" return cpuusage end },