Shell Environment Variables in config
Adding updated Nini and support to use shell environment variables in OpenSimulator configuration. Nini @ https://github.com/BlueWall/Nini-Deviar_mods
parent
b89c48b1be
commit
d4e3a7fe81
|
@ -70,7 +70,7 @@ namespace OpenSim
|
|||
/// <param name="networkInfo"></param>
|
||||
/// <returns>A configuration that gets passed to modules</returns>
|
||||
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;
|
||||
|
|
|
@ -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<IClientNetworkServer> m_clientServers = new List<IClientNetworkServer>();
|
||||
|
||||
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();
|
||||
}
|
||||
|
||||
|
|
|
@ -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"];
|
||||
|
|
BIN
bin/Nini.dll
BIN
bin/Nini.dll
Binary file not shown.
Loading…
Reference in New Issue