From d4e3a7fe81a155be841bc0d182aa7a14083ffa3e Mon Sep 17 00:00:00 2001
From: BlueWall
Date: Sat, 19 Nov 2011 11:01:51 -0500
Subject: Shell Environment Variables in config
Adding updated Nini and support to use shell environment variables in OpenSimulator configuration.
Nini @ https://github.com/BlueWall/Nini-Dev
---
OpenSim/Region/Application/ConfigurationLoader.cs | 20 +++++++++++++++++++-
1 file changed, 19 insertions(+), 1 deletion(-)
(limited to 'OpenSim/Region/Application/ConfigurationLoader.cs')
diff --git a/OpenSim/Region/Application/ConfigurationLoader.cs b/OpenSim/Region/Application/ConfigurationLoader.cs
index d0f6ab7..4a7c8b0 100644
--- a/OpenSim/Region/Application/ConfigurationLoader.cs
+++ b/OpenSim/Region/Application/ConfigurationLoader.cs
@@ -70,7 +70,7 @@ namespace OpenSim
///
/// A configuration that gets passed to modules
public OpenSimConfigSource LoadConfigSettings(
- IConfigSource argvSource, out ConfigSettings configSettings,
+ IConfigSource argvSource, EnvConfigSource envConfigSource, out ConfigSettings configSettings,
out NetworkServersInfo networkInfo)
{
m_configSettings = configSettings = new ConfigSettings();
@@ -195,6 +195,24 @@ namespace OpenSim
// Make sure command line options take precedence
m_config.Source.Merge(argvSource);
+
+ IConfig enVars = m_config.Source.Configs["Environment"];
+
+ if( enVars != null )
+ {
+ string[] env_keys = enVars.GetKeys();
+
+ foreach ( string key in env_keys )
+ {
+ envConfigSource.AddEnv(key, string.Empty);
+ }
+
+ envConfigSource.LoadEnv();
+ m_config.Source.Merge(envConfigSource);
+ m_config.Source.ExpandKeyValues();
+ }
+
+
ReadConfigSettings();
return m_config;
--
cgit v1.1