# HG changeset patch # User Florian Zeitz # Date 1255373680 -7200 # Node ID b9bf8a35b064728efd29ded975d0a9258060a7aa # Parent 6018c0370d891a196d74aa72f29e5e3191fb4c9f mod_adhoc_cmd_uptime: Initial commit diff -r 6018c0370d89 -r b9bf8a35b064 mod_adhoc_cmd_uptime/mod_adhoc_cmd_uptime.lua --- /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); +