From ab22de03b8cd40a8d6ffbf0b6bf57d4e16fd805c Mon Sep 17 00:00:00 2001 From: "Justin Clark-Casey (justincc)" Date: Wed, 9 Jan 2013 00:01:48 +0000 Subject: [PATCH] minor: Allow "script *" console commands to take multiple script item ids --- .../Region/ScriptEngine/XEngine/XEngine.cs | 62 ++++++++++--------- 1 file changed, 32 insertions(+), 30 deletions(-) diff --git a/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs b/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs index 58ba1e0c22..4102f3d94f 100644 --- a/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs +++ b/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs @@ -324,40 +324,40 @@ namespace OpenSim.Region.ScriptEngine.XEngine HandleShowStatus); MainConsole.Instance.Commands.AddCommand( - "Scripts", false, "scripts show", "scripts show []", "Show script information", + "Scripts", false, "scripts show", "scripts show [+]", "Show script information", "Show information on all scripts known to the script engine.\n" - + "If a is given then only information on that script will be shown.", + + "If one or more s are given then only information on that script will be shown.", HandleShowScripts); MainConsole.Instance.Commands.AddCommand( - "Scripts", false, "show scripts", "show scripts []", "Show script information", + "Scripts", false, "show scripts", "show scripts [+]", "Show script information", "Synonym for scripts show command", HandleShowScripts); MainConsole.Instance.Commands.AddCommand( - "Scripts", false, "scripts suspend", "scripts suspend []", "Suspends all running scripts", + "Scripts", false, "scripts suspend", "scripts suspend [+]", "Suspends all running scripts", "Suspends all currently running scripts. This only suspends event delivery, it will not suspend a" + " script that is currently processing an event.\n" + "Suspended scripts will continue to accumulate events but won't process them.\n" - + "If a is given then only that script will be suspended. Otherwise, all suitable scripts are suspended.", + + "If one or more s are given then only that script will be suspended. Otherwise, all suitable scripts are suspended.", (module, cmdparams) => HandleScriptsAction(cmdparams, HandleSuspendScript)); MainConsole.Instance.Commands.AddCommand( - "Scripts", false, "scripts resume", "scripts resume []", "Resumes all suspended scripts", + "Scripts", false, "scripts resume", "scripts resume [+]", "Resumes all suspended scripts", "Resumes all currently suspended scripts.\n" + "Resumed scripts will process all events accumulated whilst suspended.\n" - + "If a is given then only that script will be resumed. Otherwise, all suitable scripts are resumed.", + + "If one or more s are given then only that script will be resumed. Otherwise, all suitable scripts are resumed.", (module, cmdparams) => HandleScriptsAction(cmdparams, HandleResumeScript)); MainConsole.Instance.Commands.AddCommand( - "Scripts", false, "scripts stop", "scripts stop []", "Stops all running scripts", + "Scripts", false, "scripts stop", "scripts stop [+]", "Stops all running scripts", "Stops all running scripts.\n" - + "If a is given then only that script will be stopped. Otherwise, all suitable scripts are stopped.", + + "If one or more s are given then only that script will be stopped. Otherwise, all suitable scripts are stopped.", (module, cmdparams) => HandleScriptsAction(cmdparams, HandleStopScript)); MainConsole.Instance.Commands.AddCommand( - "Scripts", false, "scripts start", "scripts start []", "Starts all stopped scripts", + "Scripts", false, "scripts start", "scripts start [+]", "Starts all stopped scripts", "Starts all stopped scripts.\n" - + "If a is given then only that script will be started. Otherwise, all suitable scripts are started.", + + "If one or more s are given then only that script will be started. Otherwise, all suitable scripts are started.", (module, cmdparams) => HandleScriptsAction(cmdparams, HandleStartScript)); MainConsole.Instance.Commands.AddCommand( @@ -478,29 +478,31 @@ namespace OpenSim.Region.ScriptEngine.XEngine return; } - rawItemId = cmdparams[2]; - - if (!UUID.TryParse(rawItemId, out itemId)) + for (int i = 2; i < cmdparams.Length; i++) { - MainConsole.Instance.OutputFormat("ERROR: {0} is not a valid UUID", rawItemId); - return; - } - - if (itemId != UUID.Zero) - { - IScriptInstance instance = GetInstance(itemId); - if (instance == null) + rawItemId = cmdparams[i]; + + if (!UUID.TryParse(rawItemId, out itemId)) { - // Commented out for now since this will cause false reports on simulators with more than - // one scene where the current command line set region is 'root' (which causes commands to - // go to both regions... (sigh) -// MainConsole.Instance.OutputFormat("Error - No item found with id {0}", itemId); - return; + MainConsole.Instance.OutputFormat("ERROR: {0} is not a valid UUID", rawItemId); + continue; } - else + + if (itemId != UUID.Zero) { - action(instance); - return; + IScriptInstance instance = GetInstance(itemId); + if (instance == null) + { + // Commented out for now since this will cause false reports on simulators with more than + // one scene where the current command line set region is 'root' (which causes commands to + // go to both regions... (sigh) + // MainConsole.Instance.OutputFormat("Error - No item found with id {0}", itemId); + continue; + } + else + { + action(instance); + } } } }