diff options
author | Melanie Thielker | 2009-06-25 23:31:55 +0000 |
---|---|---|
committer | Melanie Thielker | 2009-06-25 23:31:55 +0000 |
commit | 7cc69ac97fb577807329ad71a8204985862c1757 (patch) | |
tree | 8375a3d93981b7d6786d0f517f44dc7f530534a6 | |
parent | From this version onwards, all new region files created automatically will (diff) | |
download | opensim-SC_OLD-7cc69ac97fb577807329ad71a8204985862c1757.zip opensim-SC_OLD-7cc69ac97fb577807329ad71a8204985862c1757.tar.gz opensim-SC_OLD-7cc69ac97fb577807329ad71a8204985862c1757.tar.bz2 opensim-SC_OLD-7cc69ac97fb577807329ad71a8204985862c1757.tar.xz |
Make create region save the new region to ini file format if the name
specifies an ini file.
If the ini file exists, the region will be added.
-rw-r--r-- | OpenSim/Framework/RegionInfo.cs | 12 | ||||
-rw-r--r-- | OpenSim/Region/Application/OpenSim.cs | 38 |
2 files changed, 38 insertions, 12 deletions
diff --git a/OpenSim/Framework/RegionInfo.cs b/OpenSim/Framework/RegionInfo.cs index eee078e..eb10fac 100644 --- a/OpenSim/Framework/RegionInfo.cs +++ b/OpenSim/Framework/RegionInfo.cs | |||
@@ -262,10 +262,17 @@ namespace OpenSim.Framework | |||
262 | return; | 262 | return; |
263 | } | 263 | } |
264 | 264 | ||
265 | IConfigSource source = new IniConfigSource(filename); | 265 | IniConfigSource source = new IniConfigSource(filename); |
266 | |||
267 | bool saveFile = false; | ||
268 | if (source.Configs[configName] == null) | ||
269 | saveFile = true; | ||
266 | 270 | ||
267 | ReadNiniConfig(source, configName); | 271 | ReadNiniConfig(source, configName); |
268 | 272 | ||
273 | if (configName != String.Empty && saveFile) | ||
274 | source.Save(filename); | ||
275 | |||
269 | return; | 276 | return; |
270 | } | 277 | } |
271 | 278 | ||
@@ -406,7 +413,8 @@ namespace OpenSim.Framework | |||
406 | 413 | ||
407 | if (source.Configs.Count == 0) | 414 | if (source.Configs.Count == 0) |
408 | { | 415 | { |
409 | name = MainConsole.Instance.CmdPrompt("New region name", String.Empty); | 416 | if (name == String.Empty) |
417 | name = MainConsole.Instance.CmdPrompt("New region name", name); | ||
410 | if (name == String.Empty) | 418 | if (name == String.Empty) |
411 | throw new Exception("Cannot interactively create region with no name"); | 419 | throw new Exception("Cannot interactively create region with no name"); |
412 | 420 | ||
diff --git a/OpenSim/Region/Application/OpenSim.cs b/OpenSim/Region/Application/OpenSim.cs index aef0b91..3babe72 100644 --- a/OpenSim/Region/Application/OpenSim.cs +++ b/OpenSim/Region/Application/OpenSim.cs | |||
@@ -443,20 +443,38 @@ namespace OpenSim | |||
443 | 443 | ||
444 | private void HandleCreateRegion(string module, string[] cmd) | 444 | private void HandleCreateRegion(string module, string[] cmd) |
445 | { | 445 | { |
446 | if (cmd.Length < 4 || !cmd[3].EndsWith(".xml")) | 446 | if (cmd.Length < 4) |
447 | { | ||
448 | m_log.Error("Usage: create region <region name> <region_file.xml>"); | ||
449 | return; | ||
450 | } | ||
451 | if (cmd[3].EndsWith(".xml")) | ||
452 | { | ||
453 | string regionsDir = ConfigSource.Source.Configs["Startup"].GetString("regionload_regionsdir", "Regions").Trim(); | ||
454 | string regionFile = String.Format("{0}/{1}", regionsDir, cmd[3]); | ||
455 | // Allow absolute and relative specifiers | ||
456 | if (cmd[3].StartsWith("/") || cmd[3].StartsWith("\\") || cmd[3].StartsWith("..")) | ||
457 | regionFile = cmd[3]; | ||
458 | |||
459 | IScene scene; | ||
460 | CreateRegion(new RegionInfo(cmd[2], regionFile, false, ConfigSource.Source), true, out scene); | ||
461 | } | ||
462 | else if (cmd[3].EndsWith(".ini")) | ||
463 | { | ||
464 | string regionsDir = ConfigSource.Source.Configs["Startup"].GetString("regionload_regionsdir", "Regions").Trim(); | ||
465 | string regionFile = String.Format("{0}/{1}", regionsDir, cmd[3]); | ||
466 | // Allow absolute and relative specifiers | ||
467 | if (cmd[3].StartsWith("/") || cmd[3].StartsWith("\\") || cmd[3].StartsWith("..")) | ||
468 | regionFile = cmd[3]; | ||
469 | |||
470 | IScene scene; | ||
471 | CreateRegion(new RegionInfo(cmd[2], regionFile, false, ConfigSource.Source, cmd[2]), true, out scene); | ||
472 | } | ||
473 | else | ||
447 | { | 474 | { |
448 | m_log.Error("Usage: create region <region name> <region_file.xml>"); | 475 | m_log.Error("Usage: create region <region name> <region_file.xml>"); |
449 | return; | 476 | return; |
450 | } | 477 | } |
451 | |||
452 | string regionsDir = ConfigSource.Source.Configs["Startup"].GetString("regionload_regionsdir", "Regions").Trim(); | ||
453 | string regionFile = String.Format("{0}/{1}", regionsDir, cmd[3]); | ||
454 | // Allow absolute and relative specifiers | ||
455 | if (cmd[3].StartsWith("/") || cmd[3].StartsWith("\\") || cmd[3].StartsWith("..")) | ||
456 | regionFile = cmd[3]; | ||
457 | |||
458 | IScene scene; | ||
459 | CreateRegion(new RegionInfo(cmd[2], regionFile, false, ConfigSource.Source), true, out scene); | ||
460 | } | 478 | } |
461 | 479 | ||
462 | private void HandleLoginEnable(string module, string[] cmd) | 480 | private void HandleLoginEnable(string module, string[] cmd) |