diff options
author | Justin Clark-Casey (justincc) | 2012-11-22 05:48:41 +0000 |
---|---|---|
committer | Justin Clark-Casey (justincc) | 2012-11-22 05:48:41 +0000 |
commit | 9fcf3f1a3f3457debf0f59ba7659492b44172b99 (patch) | |
tree | 472df16756b48e774c83ab9402a3a3c95b3d4601 /OpenSim/Region/Application/OpenSim.cs | |
parent | Factor out common pid file creation and removal code. (diff) | |
download | opensim-SC_OLD-9fcf3f1a3f3457debf0f59ba7659492b44172b99.zip opensim-SC_OLD-9fcf3f1a3f3457debf0f59ba7659492b44172b99.tar.gz opensim-SC_OLD-9fcf3f1a3f3457debf0f59ba7659492b44172b99.tar.bz2 opensim-SC_OLD-9fcf3f1a3f3457debf0f59ba7659492b44172b99.tar.xz |
Make "config show/set/get/save" console commands available on all servers
Diffstat (limited to 'OpenSim/Region/Application/OpenSim.cs')
-rw-r--r-- | OpenSim/Region/Application/OpenSim.cs | 134 |
1 files changed, 6 insertions, 128 deletions
diff --git a/OpenSim/Region/Application/OpenSim.cs b/OpenSim/Region/Application/OpenSim.cs index e5aecbc..e654cf7 100644 --- a/OpenSim/Region/Application/OpenSim.cs +++ b/OpenSim/Region/Application/OpenSim.cs | |||
@@ -82,8 +82,8 @@ namespace OpenSim | |||
82 | { | 82 | { |
83 | base.ReadExtraConfigSettings(); | 83 | base.ReadExtraConfigSettings(); |
84 | 84 | ||
85 | IConfig startupConfig = m_config.Source.Configs["Startup"]; | 85 | IConfig startupConfig = Config.Configs["Startup"]; |
86 | IConfig networkConfig = m_config.Source.Configs["Network"]; | 86 | IConfig networkConfig = Config.Configs["Network"]; |
87 | 87 | ||
88 | int stpMaxThreads = 15; | 88 | int stpMaxThreads = 15; |
89 | 89 | ||
@@ -148,7 +148,7 @@ namespace OpenSim | |||
148 | break; | 148 | break; |
149 | case "rest": | 149 | case "rest": |
150 | m_console = new RemoteConsole("Region"); | 150 | m_console = new RemoteConsole("Region"); |
151 | ((RemoteConsole)m_console).ReadConfig(m_config.Source); | 151 | ((RemoteConsole)m_console).ReadConfig(Config); |
152 | break; | 152 | break; |
153 | default: | 153 | default: |
154 | m_console = new LocalConsole("Region"); | 154 | m_console = new LocalConsole("Region"); |
@@ -158,7 +158,7 @@ namespace OpenSim | |||
158 | 158 | ||
159 | MainConsole.Instance = m_console; | 159 | MainConsole.Instance = m_console; |
160 | 160 | ||
161 | RegisterCommonAppenders(m_config.Source.Configs["Startup"]); | 161 | RegisterCommonAppenders(Config.Configs["Startup"]); |
162 | RegisterConsoleCommands(); | 162 | RegisterConsoleCommands(); |
163 | 163 | ||
164 | base.StartupSpecific(); | 164 | base.StartupSpecific(); |
@@ -357,26 +357,6 @@ namespace OpenSim | |||
357 | "restart", | 357 | "restart", |
358 | "Restart all sims in this instance", RunCommand); | 358 | "Restart all sims in this instance", RunCommand); |
359 | 359 | ||
360 | m_console.Commands.AddCommand("General", false, "config set", | ||
361 | "config set <section> <key> <value>", | ||
362 | "Set a config option. In most cases this is not useful since changed parameters are not dynamically reloaded. Neither do changed parameters persist - you will have to change a config file manually and restart.", HandleConfig); | ||
363 | |||
364 | m_console.Commands.AddCommand("General", false, "config get", | ||
365 | "config get [<section>] [<key>]", | ||
366 | "Synonym for config show", | ||
367 | HandleConfig); | ||
368 | |||
369 | m_console.Commands.AddCommand("General", false, "config show", | ||
370 | "config show [<section>] [<key>]", | ||
371 | "Show config information", | ||
372 | "If neither section nor field are specified, then the whole current configuration is printed." + Environment.NewLine | ||
373 | + "If a section is given but not a field, then all fields in that section are printed.", | ||
374 | HandleConfig); | ||
375 | |||
376 | m_console.Commands.AddCommand("General", false, "config save", | ||
377 | "config save <path>", | ||
378 | "Save current configuration to a file at the given path", HandleConfig); | ||
379 | |||
380 | m_console.Commands.AddCommand("General", false, "command-script", | 360 | m_console.Commands.AddCommand("General", false, "command-script", |
381 | "command-script <script>", | 361 | "command-script <script>", |
382 | "Run a command script from file", RunCommand); | 362 | "Run a command script from file", RunCommand); |
@@ -619,111 +599,9 @@ namespace OpenSim | |||
619 | bool changed = PopulateRegionEstateInfo(regInfo); | 599 | bool changed = PopulateRegionEstateInfo(regInfo); |
620 | IScene scene; | 600 | IScene scene; |
621 | CreateRegion(regInfo, true, out scene); | 601 | CreateRegion(regInfo, true, out scene); |
622 | if (changed) | ||
623 | regInfo.EstateSettings.Save(); | ||
624 | } | ||
625 | |||
626 | /// <summary> | ||
627 | /// Change and load configuration file data. | ||
628 | /// </summary> | ||
629 | /// <param name="module"></param> | ||
630 | /// <param name="cmd"></param> | ||
631 | private void HandleConfig(string module, string[] cmd) | ||
632 | { | ||
633 | List<string> args = new List<string>(cmd); | ||
634 | args.RemoveAt(0); | ||
635 | string[] cmdparams = args.ToArray(); | ||
636 | 602 | ||
637 | if (cmdparams.Length > 0) | 603 | if (changed) |
638 | { | 604 | regInfo.EstateSettings.Save(); |
639 | string firstParam = cmdparams[0].ToLower(); | ||
640 | |||
641 | switch (firstParam) | ||
642 | { | ||
643 | case "set": | ||
644 | if (cmdparams.Length < 4) | ||
645 | { | ||
646 | Notice("Syntax: config set <section> <key> <value>"); | ||
647 | Notice("Example: config set ScriptEngine.DotNetEngine NumberOfScriptThreads 5"); | ||
648 | } | ||
649 | else | ||
650 | { | ||
651 | IConfig c; | ||
652 | IConfigSource source = new IniConfigSource(); | ||
653 | c = source.AddConfig(cmdparams[1]); | ||
654 | if (c != null) | ||
655 | { | ||
656 | string _value = String.Join(" ", cmdparams, 3, cmdparams.Length - 3); | ||
657 | c.Set(cmdparams[2], _value); | ||
658 | m_config.Source.Merge(source); | ||
659 | |||
660 | Notice("In section [{0}], set {1} = {2}", c.Name, cmdparams[2], _value); | ||
661 | } | ||
662 | } | ||
663 | break; | ||
664 | |||
665 | case "get": | ||
666 | case "show": | ||
667 | if (cmdparams.Length == 1) | ||
668 | { | ||
669 | foreach (IConfig config in m_config.Source.Configs) | ||
670 | { | ||
671 | Notice("[{0}]", config.Name); | ||
672 | string[] keys = config.GetKeys(); | ||
673 | foreach (string key in keys) | ||
674 | Notice(" {0} = {1}", key, config.GetString(key)); | ||
675 | } | ||
676 | } | ||
677 | else if (cmdparams.Length == 2 || cmdparams.Length == 3) | ||
678 | { | ||
679 | IConfig config = m_config.Source.Configs[cmdparams[1]]; | ||
680 | if (config == null) | ||
681 | { | ||
682 | Notice("Section \"{0}\" does not exist.",cmdparams[1]); | ||
683 | break; | ||
684 | } | ||
685 | else | ||
686 | { | ||
687 | if (cmdparams.Length == 2) | ||
688 | { | ||
689 | Notice("[{0}]", config.Name); | ||
690 | foreach (string key in config.GetKeys()) | ||
691 | Notice(" {0} = {1}", key, config.GetString(key)); | ||
692 | } | ||
693 | else | ||
694 | { | ||
695 | Notice( | ||
696 | "config get {0} {1} : {2}", | ||
697 | cmdparams[1], cmdparams[2], config.GetString(cmdparams[2])); | ||
698 | } | ||
699 | } | ||
700 | } | ||
701 | else | ||
702 | { | ||
703 | Notice("Syntax: config {0} [<section>] [<key>]", firstParam); | ||
704 | Notice("Example: config {0} ScriptEngine.DotNetEngine NumberOfScriptThreads", firstParam); | ||
705 | } | ||
706 | |||
707 | break; | ||
708 | |||
709 | case "save": | ||
710 | if (cmdparams.Length < 2) | ||
711 | { | ||
712 | Notice("Syntax: config save <path>"); | ||
713 | return; | ||
714 | } | ||
715 | |||
716 | if (Application.iniFilePath == cmdparams[1]) | ||
717 | { | ||
718 | Notice("Path can not be " + Application.iniFilePath); | ||
719 | return; | ||
720 | } | ||
721 | |||
722 | Notice("Saving configuration file: " + cmdparams[1]); | ||
723 | m_config.Save(cmdparams[1]); | ||
724 | break; | ||
725 | } | ||
726 | } | ||
727 | } | 605 | } |
728 | 606 | ||
729 | /// <summary> | 607 | /// <summary> |