From 3f6c6eed33a4d6101180abd4c14d0d0faab9c5d7 Mon Sep 17 00:00:00 2001 From: SignpostMarv Date: Wed, 5 Sep 2012 11:25:37 +0100 Subject: pasting in show uptime code Signed-off-by: BlueWall <jamesh@bluewallgroup.com> --- OpenSim/Server/Base/ServicesServerBase.cs | 41 +++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) (limited to 'OpenSim/Server') diff --git a/OpenSim/Server/Base/ServicesServerBase.cs b/OpenSim/Server/Base/ServicesServerBase.cs index b137c05..0cff6ed 100644 --- a/OpenSim/Server/Base/ServicesServerBase.cs +++ b/OpenSim/Server/Base/ServicesServerBase.cs @@ -26,6 +26,7 @@ */ using System; +using System.Collections.Generic; using System.IO; using System.Reflection; using System.Threading; @@ -71,10 +72,17 @@ namespace OpenSim.Server.Base // private string m_pidFile = String.Empty; + /// <summary> + /// Time at which this server was started + /// </summary> + protected DateTime m_startuptime; + // Handle all the automagical stuff // public ServicesServerBase(string prompt, string[] args) { + m_startuptime = DateTime.Now; + // Save raw arguments // m_Arguments = args; @@ -250,6 +258,10 @@ namespace OpenSim.Server.Base "command-script <script>", "Run a command script from file", HandleScript); + MainConsole.Instance.Commands.AddCommand("General", false, "show uptime", + "show uptime", + "Show server uptime", HandleShow); + // Allow derived classes to perform initialization that // needs to be done after the console has opened @@ -345,5 +357,34 @@ namespace OpenSim.Server.Base { } } + + public virtual void HandleShow(string module, string[] cmd) + { + List<string> args = new List<string>(cmd); + + args.RemoveAt(0); + + string[] showParams = args.ToArray(); + + switch (showParams[0]) + { + case "uptime": + MainConsole.Instance.Output(GetUptimeReport()); + break; + } + } + + /// <summary> + /// Return a report about the uptime of this server + /// </summary> + /// <returns></returns> + protected string GetUptimeReport() + { + StringBuilder sb = new StringBuilder(String.Format("Time now is {0}\n", DateTime.Now)); + sb.Append(String.Format("Server has been running since {0}, {1}\n", m_startuptime.DayOfWeek, m_startuptime)); + sb.Append(String.Format("That is an elapsed time of {0}\n", DateTime.Now - m_startuptime)); + + return sb.ToString(); + } } } -- cgit v1.1