From d4e3a7fe81a155be841bc0d182aa7a14083ffa3e Mon Sep 17 00:00:00 2001 From: BlueWall Date: Sat, 19 Nov 2011 11:01:51 -0500 Subject: [PATCH] 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 --- .../Region/Application/ConfigurationLoader.cs | 20 +++++++++++++++++- OpenSim/Region/Application/OpenSimBase.cs | 9 +++++++- OpenSim/Tests/ConfigurationLoaderTest.cs | 4 +++- bin/Nini.dll | Bin 61440 -> 55808 bytes 4 files changed, 30 insertions(+), 3 deletions(-) diff --git a/OpenSim/Region/Application/ConfigurationLoader.cs b/OpenSim/Region/Application/ConfigurationLoader.cs index d0f6ab7c94..4a7c8b083b 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; diff --git a/OpenSim/Region/Application/OpenSimBase.cs b/OpenSim/Region/Application/OpenSimBase.cs index 553786b1f7..0a78df27ce 100644 --- a/OpenSim/Region/Application/OpenSimBase.cs +++ b/OpenSim/Region/Application/OpenSimBase.cs @@ -108,6 +108,13 @@ namespace OpenSim get { return m_clientServers; } } + protected EnvConfigSource m_EnvConfigSource = new EnvConfigSource(); + + public EnvConfigSource envConfigSource + { + get { return m_EnvConfigSource; } + } + protected List m_clientServers = new List(); public uint HttpServerPort @@ -142,7 +149,7 @@ namespace OpenSim protected virtual void LoadConfigSettings(IConfigSource configSource) { m_configLoader = new ConfigurationLoader(); - m_config = m_configLoader.LoadConfigSettings(configSource, out m_configSettings, out m_networkServersInfo); + m_config = m_configLoader.LoadConfigSettings(configSource, envConfigSource, out m_configSettings, out m_networkServersInfo); ReadExtraConfigSettings(); } diff --git a/OpenSim/Tests/ConfigurationLoaderTest.cs b/OpenSim/Tests/ConfigurationLoaderTest.cs index c777acc0f1..067264d027 100644 --- a/OpenSim/Tests/ConfigurationLoaderTest.cs +++ b/OpenSim/Tests/ConfigurationLoaderTest.cs @@ -109,11 +109,13 @@ namespace OpenSim.Tests // Prepare call to ConfigurationLoader.LoadConfigSettings() ConfigurationLoader cl = new ConfigurationLoader(); IConfigSource argvSource = new IniConfigSource(); + EnvConfigSource envConfigSource = new EnvConfigSource(); argvSource.AddConfig("Startup").Set("inifile", mainIniFile); ConfigSettings configSettings; NetworkServersInfo networkInfo; - OpenSimConfigSource source = cl.LoadConfigSettings(argvSource, out configSettings, out networkInfo); + OpenSimConfigSource source = cl.LoadConfigSettings(argvSource, envConfigSource, + out configSettings, out networkInfo); // Remove default config config = source.Source.Configs["Startup"]; diff --git a/bin/Nini.dll b/bin/Nini.dll index 745057c3f64795a9d2709faafd6a0a942ca717f1..c421005ba38fbf969bd4dbeaaa2f1886438a7c03 100755 GIT binary patch literal 55808 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 E1)?t;O8@`>