From 013dd08225ed70010ef983172873766aa9a5d9fb Mon Sep 17 00:00:00 2001 From: "Adrian C. (anrxc)" Date: Thu, 6 Aug 2009 02:26:23 +0200 Subject: HDD Temperature widget included. Widget uses the hddtemp daemon to return the temperatures for all available hard drives. It uses curl and connects to the daemon over telnet. --- hddtemp.lua | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 hddtemp.lua diff --git a/hddtemp.lua b/hddtemp.lua new file mode 100644 index 0000000..e703278 --- /dev/null +++ b/hddtemp.lua @@ -0,0 +1,39 @@ +---------------------------------------------------------- +-- Licensed under the GNU General Public License version 2 +-- * Copyright (C) 2009 Adrian C. +---------------------------------------------------------- + +-- {{{ Grab environment +local io = { popen = io.popen } +local setmetatable = setmetatable +-- }}} + + +-- Hddtemp: provides hard drive temperatures using the hddtemp daemon +module("vicious.hddtemp") + + +-- {{{ HDD Temperature widget type +function worker(format, port) + -- Fallback to default hddtemp port + if port == nil then port = 7634 end + + -- Get info from the hddtemp daemon + local f = io.popen("curl --max-time 3 -f -s telnet://127.0.0.1:" .. port) + local hdd_temp = {} + + -- Get temperature data + for line in f:lines() do + local disk, temp = line:match("|([%/%a]+)|.*|([%d]+)|[CF]+|") + + if disk ~= nil and temp ~= nil then + hdd_temp["{"..disk.."}"] = temp + end + end + f:close() + + return hdd_temp +end +-- }}} + +setmetatable(_M, { __call = function(_, ...) return worker(...) end }) -- cgit v1.2.3