Software /
code /
prosody-modules
Diff
mod_adhoc_cmd_uptime/mod_adhoc_cmd_uptime.lua @ 38:b9bf8a35b064
mod_adhoc_cmd_uptime: Initial commit
author | Florian Zeitz <florob@babelmonkeys.de> |
---|---|
date | Mon, 12 Oct 2009 20:54:40 +0200 |
child | 109:9b63fd1196c0 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mod_adhoc_cmd_uptime/mod_adhoc_cmd_uptime.lua Mon Oct 12 20:54:40 2009 +0200 @@ -0,0 +1,38 @@ +-- Copyright (C) 2009 Florian Zeitz +-- +-- This file is MIT/X11 licensed. Please see the +-- COPYING file in the source package for more information. +-- + +local _G = _G; +local prosody = _G.prosody; +local st, uuid = require "util.stanza", require "util.uuid"; +local adhoc_new = module:require "adhoc".new; + +function uptime() + local t = os.time()-prosody.start_time; + local seconds = t%60; + t = (t - seconds)/60; + local minutes = t%60; + t = (t - minutes)/60; + local hours = t%24; + t = (t - hours)/24; + local days = t; + return string.format("This server has been running for %d day%s, %d hour%s and %d minute%s (since %s)", + days, (days ~= 1 and "s") or "", hours, (hours ~= 1 and "s") or "", + minutes, (minutes ~= 1 and "s") or "", os.date("%c", prosody.start_time)); +end + +function uptime_command_handler (item, origin, stanza) + origin.send(st.reply(stanza):add_child(item:cmdtag("completed", uuid.generate()):tag("note", {type="info"}):text(uptime()))); + return true; +end + +local descriptor = adhoc_new("Get uptime", "uptime", uptime_command_handler); + +function module.unload() + module:remove_item("adhoc", descriptor); +end + +module:add_item ("adhoc", descriptor); +