From 237470c8f45190b213e3a173ce6ae1a74b3e11fe Mon Sep 17 00:00:00 2001 From: "Adrian C. (anrxc)" Date: Sun, 14 Mar 2010 01:55:33 +0100 Subject: API: transform widgets namespace table to a directory --- widgets/uptime.lua | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 widgets/uptime.lua (limited to 'widgets/uptime.lua') diff --git a/widgets/uptime.lua b/widgets/uptime.lua new file mode 100644 index 0000000..ebc5af8 --- /dev/null +++ b/widgets/uptime.lua @@ -0,0 +1,37 @@ +--------------------------------------------------- +-- Licensed under the GNU General Public License v2 +-- * (c) 2010, Adrian C. +-- * (c) 2009, Lucas de Vries +--------------------------------------------------- + +-- {{{ Grab environment +local setmetatable = setmetatable +local math = { floor = math.floor } +local string = { match = string.match } +local helpers = require("vicious.helpers") +-- }}} + + +-- Uptime: provides system uptime and load information +module("vicious.widgets.uptime") + + +-- {{{ Uptime widget type +local function worker(format) + local proc = helpers.pathtotable("/proc") + + -- Get system uptime + local up_t = math.floor(string.match(proc.uptime, "[%d]+")) + local up_d = math.floor(up_t / (3600 * 24)) + local up_h = math.floor((up_t % (3600 * 24)) / 3600) + local up_m = math.floor(((up_t % (3600 * 24)) % 3600) / 60) + + -- Get load averages + local l1, l5, l15 = -- Get load averages for past 1, 5 and 15 minutes + string.match(proc.loadavg, "([%d]*%.[%d]*)%s([%d]*%.[%d]*)%s([%d]*%.[%d]*)") + + return {up_d, up_h, up_m, l1, l5, l15} +end +-- }}} + +setmetatable(_M, { __call = function(_, ...) return worker(...) end }) -- cgit v1.2.3