From 5869598c4ca462bfda3b83b707c57433048f364c Mon Sep 17 00:00:00 2001 From: Melanie Thielker Date: Fri, 26 Jun 2009 00:00:20 +0000 Subject: Make delete-region delete the section from an ini file. Will delete the whole file if it has no sections left. --- OpenSim/Region/Application/OpenSimBase.cs | 30 ++++++++++++++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) (limited to 'OpenSim/Region/Application') diff --git a/OpenSim/Region/Application/OpenSimBase.cs b/OpenSim/Region/Application/OpenSimBase.cs index 1ff53c9..9e3dafb 100644 --- a/OpenSim/Region/Application/OpenSimBase.cs +++ b/OpenSim/Region/Application/OpenSimBase.cs @@ -465,8 +465,34 @@ namespace OpenSim if (!String.IsNullOrEmpty(scene.RegionInfo.RegionFile)) { - File.Delete(scene.RegionInfo.RegionFile); - m_log.InfoFormat("[OPENSIM]: deleting region file \"{0}\"", scene.RegionInfo.RegionFile); + if (scene.RegionInfo.RegionFile.ToLower().EndsWith(".xml")) + { + File.Delete(scene.RegionInfo.RegionFile); + m_log.InfoFormat("[OPENSIM]: deleting region file \"{0}\"", scene.RegionInfo.RegionFile); + } + if (scene.RegionInfo.RegionFile.ToLower().EndsWith(".ini")) + { + try + { + IniConfigSource source = new IniConfigSource(scene.RegionInfo.RegionFile); + if (source.Configs[scene.RegionInfo.RegionName] != null) + { + source.Configs.Remove(scene.RegionInfo.RegionName); + + if (source.Configs.Count == 0) + { + File.Delete(scene.RegionInfo.RegionFile); + } + else + { + source.Save(scene.RegionInfo.RegionFile); + } + } + } + catch (Exception) + { + } + } } } -- cgit v1.1