diff options
Diffstat (limited to '')
-rw-r--r-- | OpenSim/Region/ScriptEngine/XEngine/XEngine.cs | 69 |
1 files changed, 38 insertions, 31 deletions
diff --git a/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs b/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs index 05dd7ab..34fcf0c 100644 --- a/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs +++ b/OpenSim/Region/ScriptEngine/XEngine/XEngine.cs | |||
@@ -237,6 +237,8 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
237 | } | 237 | } |
238 | } | 238 | } |
239 | 239 | ||
240 | private ScriptEngineConsoleCommands m_consoleCommands; | ||
241 | |||
240 | public string ScriptEngineName | 242 | public string ScriptEngineName |
241 | { | 243 | { |
242 | get { return "XEngine"; } | 244 | get { return "XEngine"; } |
@@ -386,50 +388,53 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
386 | OnObjectRemoved += m_XmlRpcRouter.ObjectRemoved; | 388 | OnObjectRemoved += m_XmlRpcRouter.ObjectRemoved; |
387 | } | 389 | } |
388 | 390 | ||
391 | m_consoleCommands = new ScriptEngineConsoleCommands(this); | ||
392 | m_consoleCommands.RegisterCommands(); | ||
393 | |||
389 | MainConsole.Instance.Commands.AddCommand( | 394 | MainConsole.Instance.Commands.AddCommand( |
390 | "Scripts", false, "xengine status", "xengine status", "Show status information", | 395 | "Scripts", false, "xengine status", "xengine status", "Show status information", |
391 | "Show status information on the script engine.", | 396 | "Show status information on the script engine.", |
392 | HandleShowStatus); | 397 | HandleShowStatus); |
393 | 398 | ||
394 | MainConsole.Instance.Commands.AddCommand( | 399 | MainConsole.Instance.Commands.AddCommand( |
395 | "Scripts", false, "scripts show", "scripts show [<script-item-uuid>]", "Show script information", | 400 | "Scripts", false, "scripts show", "scripts show [<script-item-uuid>+]", "Show script information", |
396 | "Show information on all scripts known to the script engine.\n" | 401 | "Show information on all scripts known to the script engine.\n" |
397 | + "If a <script-item-uuid> is given then only information on that script will be shown.", | 402 | + "If one or more <script-item-uuid>s are given then only information on that script will be shown.", |
398 | HandleShowScripts); | 403 | HandleShowScripts); |
399 | 404 | ||
400 | MainConsole.Instance.Commands.AddCommand( | 405 | MainConsole.Instance.Commands.AddCommand( |
401 | "Scripts", false, "show scripts", "show scripts [<script-item-uuid>]", "Show script information", | 406 | "Scripts", false, "show scripts", "show scripts [<script-item-uuid>+]", "Show script information", |
402 | "Synonym for scripts show command", HandleShowScripts); | 407 | "Synonym for scripts show command", HandleShowScripts); |
403 | 408 | ||
404 | MainConsole.Instance.Commands.AddCommand( | 409 | MainConsole.Instance.Commands.AddCommand( |
405 | "Scripts", false, "scripts suspend", "scripts suspend [<script-item-uuid>]", "Suspends all running scripts", | 410 | "Scripts", false, "scripts suspend", "scripts suspend [<script-item-uuid>+]", "Suspends all running scripts", |
406 | "Suspends all currently running scripts. This only suspends event delivery, it will not suspend a" | 411 | "Suspends all currently running scripts. This only suspends event delivery, it will not suspend a" |
407 | + " script that is currently processing an event.\n" | 412 | + " script that is currently processing an event.\n" |
408 | + "Suspended scripts will continue to accumulate events but won't process them.\n" | 413 | + "Suspended scripts will continue to accumulate events but won't process them.\n" |
409 | + "If a <script-item-uuid> is given then only that script will be suspended. Otherwise, all suitable scripts are suspended.", | 414 | + "If one or more <script-item-uuid>s are given then only that script will be suspended. Otherwise, all suitable scripts are suspended.", |
410 | (module, cmdparams) => HandleScriptsAction(cmdparams, HandleSuspendScript)); | 415 | (module, cmdparams) => HandleScriptsAction(cmdparams, HandleSuspendScript)); |
411 | 416 | ||
412 | MainConsole.Instance.Commands.AddCommand( | 417 | MainConsole.Instance.Commands.AddCommand( |
413 | "Scripts", false, "scripts resume", "scripts resume [<script-item-uuid>]", "Resumes all suspended scripts", | 418 | "Scripts", false, "scripts resume", "scripts resume [<script-item-uuid>+]", "Resumes all suspended scripts", |
414 | "Resumes all currently suspended scripts.\n" | 419 | "Resumes all currently suspended scripts.\n" |
415 | + "Resumed scripts will process all events accumulated whilst suspended.\n" | 420 | + "Resumed scripts will process all events accumulated whilst suspended.\n" |
416 | + "If a <script-item-uuid> is given then only that script will be resumed. Otherwise, all suitable scripts are resumed.", | 421 | + "If one or more <script-item-uuid>s are given then only that script will be resumed. Otherwise, all suitable scripts are resumed.", |
417 | (module, cmdparams) => HandleScriptsAction(cmdparams, HandleResumeScript)); | 422 | (module, cmdparams) => HandleScriptsAction(cmdparams, HandleResumeScript)); |
418 | 423 | ||
419 | MainConsole.Instance.Commands.AddCommand( | 424 | MainConsole.Instance.Commands.AddCommand( |
420 | "Scripts", false, "scripts stop", "scripts stop [<script-item-uuid>]", "Stops all running scripts", | 425 | "Scripts", false, "scripts stop", "scripts stop [<script-item-uuid>+]", "Stops all running scripts", |
421 | "Stops all running scripts.\n" | 426 | "Stops all running scripts.\n" |
422 | + "If a <script-item-uuid> is given then only that script will be stopped. Otherwise, all suitable scripts are stopped.", | 427 | + "If one or more <script-item-uuid>s are given then only that script will be stopped. Otherwise, all suitable scripts are stopped.", |
423 | (module, cmdparams) => HandleScriptsAction(cmdparams, HandleStopScript)); | 428 | (module, cmdparams) => HandleScriptsAction(cmdparams, HandleStopScript)); |
424 | 429 | ||
425 | MainConsole.Instance.Commands.AddCommand( | 430 | MainConsole.Instance.Commands.AddCommand( |
426 | "Scripts", false, "scripts start", "scripts start [<script-item-uuid>]", "Starts all stopped scripts", | 431 | "Scripts", false, "scripts start", "scripts start [<script-item-uuid>+]", "Starts all stopped scripts", |
427 | "Starts all stopped scripts.\n" | 432 | "Starts all stopped scripts.\n" |
428 | + "If a <script-item-uuid> is given then only that script will be started. Otherwise, all suitable scripts are started.", | 433 | + "If one or more <script-item-uuid>s are given then only that script will be started. Otherwise, all suitable scripts are started.", |
429 | (module, cmdparams) => HandleScriptsAction(cmdparams, HandleStartScript)); | 434 | (module, cmdparams) => HandleScriptsAction(cmdparams, HandleStartScript)); |
430 | 435 | ||
431 | MainConsole.Instance.Commands.AddCommand( | 436 | MainConsole.Instance.Commands.AddCommand( |
432 | "Scripts", false, "debug script log", "debug scripts log <item-id> <log-level>", "Extra debug logging for a script", | 437 | "Scripts", false, "debug scripts log", "debug scripts log <item-id> <log-level>", "Extra debug logging for a script", |
433 | "Activates or deactivates extra debug logging for the given script.\n" | 438 | "Activates or deactivates extra debug logging for the given script.\n" |
434 | + "Level == 0, deactivate extra debug logging.\n" | 439 | + "Level == 0, deactivate extra debug logging.\n" |
435 | + "Level >= 1, log state changes.\n" | 440 | + "Level >= 1, log state changes.\n" |
@@ -546,29 +551,31 @@ namespace OpenSim.Region.ScriptEngine.XEngine | |||
546 | return; | 551 | return; |
547 | } | 552 | } |
548 | 553 | ||
549 | rawItemId = cmdparams[2]; | 554 | for (int i = 2; i < cmdparams.Length; i++) |
550 | |||
551 | if (!UUID.TryParse(rawItemId, out itemId)) | ||
552 | { | 555 | { |
553 | MainConsole.Instance.OutputFormat("ERROR: {0} is not a valid UUID", rawItemId); | 556 | rawItemId = cmdparams[i]; |
554 | return; | 557 | |
555 | } | 558 | if (!UUID.TryParse(rawItemId, out itemId)) |
556 | |||
557 | if (itemId != UUID.Zero) | ||
558 | { | ||
559 | IScriptInstance instance = GetInstance(itemId); | ||
560 | if (instance == null) | ||
561 | { | 559 | { |
562 | // Commented out for now since this will cause false reports on simulators with more than | 560 | MainConsole.Instance.OutputFormat("ERROR: {0} is not a valid UUID", rawItemId); |
563 | // one scene where the current command line set region is 'root' (which causes commands to | 561 | continue; |
564 | // go to both regions... (sigh) | ||
565 | // MainConsole.Instance.OutputFormat("Error - No item found with id {0}", itemId); | ||
566 | return; | ||
567 | } | 562 | } |
568 | else | 563 | |
564 | if (itemId != UUID.Zero) | ||
569 | { | 565 | { |
570 | action(instance); | 566 | IScriptInstance instance = GetInstance(itemId); |
571 | return; | 567 | if (instance == null) |
568 | { | ||
569 | // Commented out for now since this will cause false reports on simulators with more than | ||
570 | // one scene where the current command line set region is 'root' (which causes commands to | ||
571 | // go to both regions... (sigh) | ||
572 | // MainConsole.Instance.OutputFormat("Error - No item found with id {0}", itemId); | ||
573 | continue; | ||
574 | } | ||
575 | else | ||
576 | { | ||
577 | action(instance); | ||
578 | } | ||
572 | } | 579 | } |
573 | } | 580 | } |
574 | } | 581 | } |