Migrate to rcm
This commit is contained in:
52
notion/statusd_timelogger.lua
Normal file
52
notion/statusd_timelogger.lua
Normal file
@@ -0,0 +1,52 @@
|
||||
local timelogger_base_settings = {
|
||||
update_interval = 5*1000 -- 5 seconds
|
||||
}
|
||||
|
||||
local timelogger_settings = timelogger_base_settings
|
||||
|
||||
local timelogger_timer
|
||||
|
||||
-- Read the active timelogger
|
||||
local function read_timelogger_data ()
|
||||
local f = assert(io.popen("timelogger status"))
|
||||
local current = f:read("*all")
|
||||
f:close()
|
||||
local f = assert(io.popen("timelogger today"))
|
||||
local total = f:read("*all")
|
||||
f:close()
|
||||
return tonumber(current), tonumber(total)
|
||||
end
|
||||
|
||||
-- Write the current state to the statusbar:
|
||||
local function inform_timelogger ()
|
||||
|
||||
local tl_current, tl_total = read_timelogger_data()
|
||||
|
||||
statusd.inform("timelogger", tostring(math.floor(tl_current/60).." min / "..tostring(math.ceil(tl_total/3600).." hr")))
|
||||
|
||||
if tl_current >= 40*60 then
|
||||
statusd.inform("timelogger_hint", "critical")
|
||||
elseif tl_current >= 25*60 then
|
||||
statusd.inform("timelogger_hint", "important")
|
||||
else
|
||||
statusd.inform("timelogger_hint", "normal")
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
-- Statusbar update loop:
|
||||
local function update_timelogger ()
|
||||
inform_timelogger()
|
||||
timelogger_timer:set(timelogger_settings.update_interval, update_timelogger)
|
||||
end
|
||||
|
||||
|
||||
-- Run the script:
|
||||
if statusd then
|
||||
-- we're a statusbar plugin:
|
||||
timelogger_settings = table.join(statusd.get_config("timelogger"), timelogger_base_settings)
|
||||
timelogger_timer = statusd.create_timer()
|
||||
update_timelogger()
|
||||
end
|
||||
|
||||
-- vim: set ts=4 sw=4 expandtab
|
||||
Reference in New Issue
Block a user