aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Framework/Servers
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Framework/Servers')
-rw-r--r--OpenSim/Framework/Servers/BaseOpenSimServer.cs82
-rw-r--r--OpenSim/Framework/Servers/VersionInfo.cs37
2 files changed, 119 insertions, 0 deletions
diff --git a/OpenSim/Framework/Servers/BaseOpenSimServer.cs b/OpenSim/Framework/Servers/BaseOpenSimServer.cs
index 60c6883..0205e38 100644
--- a/OpenSim/Framework/Servers/BaseOpenSimServer.cs
+++ b/OpenSim/Framework/Servers/BaseOpenSimServer.cs
@@ -26,6 +26,7 @@
26 */ 26 */
27 27
28using System; 28using System;
29using System.IO;
29using OpenSim.Framework.Console; 30using OpenSim.Framework.Console;
30using OpenSim.Framework.Statistics; 31using OpenSim.Framework.Statistics;
31 32
@@ -37,7 +38,16 @@ namespace OpenSim.Framework.Servers
37 public abstract class BaseOpenSimServer 38 public abstract class BaseOpenSimServer
38 { 39 {
39 protected ConsoleBase m_console; 40 protected ConsoleBase m_console;
41
42 /// <summary>
43 /// Time at which this server was started
44 /// </summary>
40 protected DateTime m_startuptime; 45 protected DateTime m_startuptime;
46
47 /// <summary>
48 /// Server version information. Usually VersionInfo + information about svn revision, operating system, etc.
49 /// </summary>
50 protected string m_version;
41 51
42 protected BaseHttpServer m_httpServer; 52 protected BaseHttpServer m_httpServer;
43 public BaseHttpServer HttpServer 53 public BaseHttpServer HttpServer
@@ -53,6 +63,11 @@ namespace OpenSim.Framework.Servers
53 public BaseOpenSimServer() 63 public BaseOpenSimServer()
54 { 64 {
55 m_startuptime = DateTime.Now; 65 m_startuptime = DateTime.Now;
66
67 m_version = VersionInfo.Version;
68
69 // FIXME: This should probably occur in a startup method common for all the servers.
70 EnhanceVersionInformation();
56 } 71 }
57 72
58 /// <summary> 73 /// <summary>
@@ -64,6 +79,7 @@ namespace OpenSim.Framework.Servers
64 { 79 {
65 m_console.Close(); 80 m_console.Close();
66 } 81 }
82
67 Environment.Exit(0); 83 Environment.Exit(0);
68 } 84 }
69 85
@@ -120,6 +136,10 @@ namespace OpenSim.Framework.Servers
120 Notice("Server has been running since " + m_startuptime.DayOfWeek + ", " + m_startuptime.ToString()); 136 Notice("Server has been running since " + m_startuptime.DayOfWeek + ", " + m_startuptime.ToString());
121 Notice("That is an elapsed time of " + (DateTime.Now - m_startuptime).ToString()); 137 Notice("That is an elapsed time of " + (DateTime.Now - m_startuptime).ToString());
122 break; 138 break;
139
140 case "version":
141 m_console.Notice("This is " + m_version);
142 break;
123 } 143 }
124 } 144 }
125 145
@@ -136,5 +156,67 @@ namespace OpenSim.Framework.Servers
136 } 156 }
137 } 157 }
138 158
159 /// <summary>
160 /// Enhance the version string with extra information if it's available.
161 /// </summary>
162 protected void EnhanceVersionInformation()
163 {
164 string buildVersion = string.Empty;
165
166 // Add subversion revision information if available
167 // FIXME: Making an assumption about the directory we're currently in - we do this all over the place
168 // elsewhere as well
169 string svnFileName = "../.svn/entries";
170 string inputLine;
171 int strcmp;
172
173 if (File.Exists(svnFileName))
174 {
175 StreamReader EntriesFile = File.OpenText(svnFileName);
176 inputLine = EntriesFile.ReadLine();
177 while (inputLine != null)
178 {
179 // using the dir svn revision at the top of entries file
180 strcmp = String.Compare(inputLine, "dir");
181 if (strcmp == 0)
182 {
183 buildVersion = EntriesFile.ReadLine();
184 break;
185 }
186 else
187 {
188 inputLine = EntriesFile.ReadLine();
189 }
190 }
191 EntriesFile.Close();
192 }
193
194 if (!string.IsNullOrEmpty(buildVersion))
195 {
196 m_version += ", SVN build r" + buildVersion;
197 }
198 else
199 {
200 m_version += ", SVN build revision not available";
201 }
202
203 // Add operating system information if available
204 string OSString = "";
205
206 if (System.Environment.OSVersion.Platform != PlatformID.Unix)
207 {
208 OSString = System.Environment.OSVersion.ToString();
209 }
210 else
211 {
212 OSString = Util.ReadEtcIssue();
213 }
214 if (OSString.Length > 45)
215 {
216 OSString = OSString.Substring(0, 45);
217 }
218
219 m_version += ", OS " + OSString;
220 }
139 } 221 }
140} 222}
diff --git a/OpenSim/Framework/Servers/VersionInfo.cs b/OpenSim/Framework/Servers/VersionInfo.cs
new file mode 100644
index 0000000..5bd78e7
--- /dev/null
+++ b/OpenSim/Framework/Servers/VersionInfo.cs
@@ -0,0 +1,37 @@
1/*
2 * Copyright (c) Contributors, http://opensimulator.org/
3 * See CONTRIBUTORS.TXT for a full list of copyright holders.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are met:
7 * * Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * * Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
12 * * Neither the name of the OpenSim Project nor the
13 * names of its contributors may be used to endorse or promote products
14 * derived from this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY
17 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27
28namespace OpenSim
29{
30 /// <summary>
31 /// This is the OpenSim version string. Change this if you are releasing a new OpenSim version.
32 /// </summary>
33 public class VersionInfo
34 {
35 public readonly static string Version = "OpenSimulator trunk (post 0.5.7)";
36 }
37}