Start filling out commands

integration
BlueWall 2012-04-05 23:48:25 -04:00
parent de1d213117
commit 1aab096a83
2 changed files with 61 additions and 22 deletions

View File

@ -26,6 +26,7 @@
*/ */
using System; using System;
using System.Collections;
using System.Reflection; using System.Reflection;
using OpenSim.Server.Base; using OpenSim.Server.Base;
using OpenSim.Services.Interfaces; using OpenSim.Services.Interfaces;
@ -35,6 +36,7 @@ using GridRegion = OpenSim.Services.Interfaces.GridRegion;
using OpenMetaverse; using OpenMetaverse;
using Nini.Config; using Nini.Config;
using log4net; using log4net;
using Mono.Addins;
namespace OpenSim.Services.IntegrationService namespace OpenSim.Services.IntegrationService
@ -48,7 +50,7 @@ namespace OpenSim.Services.IntegrationService
{ {
m_log.InfoFormat("[INTEGRATION SERVICE]: Loaded"); m_log.InfoFormat("[INTEGRATION SERVICE]: Loaded");
// Add a command to the console // Add commands to the console
if (MainConsole.Instance != null) if (MainConsole.Instance != null)
{ {
AddConsoleCommands(); AddConsoleCommands();
@ -77,7 +79,8 @@ namespace OpenSim.Services.IntegrationService
"list available", "list available \"plugin name=\"","List available plugins", "list available", "list available \"plugin name=\"","List available plugins",
HandleListAvailablePlugin); HandleListAvailablePlugin);
MainConsole.Instance.Commands.AddCommand("Integration", true, "list updates", "list updates","List availble updates", MainConsole.Instance.Commands.AddCommand("Integration", true,
"list updates", "list updates","List availble updates",
HandleListUpdates); HandleListUpdates);
MainConsole.Instance.Commands.AddCommand("Integration", true, MainConsole.Instance.Commands.AddCommand("Integration", true,
@ -88,7 +91,8 @@ namespace OpenSim.Services.IntegrationService
"add repo", "add repo \"url\"","Add repository", "add repo", "add repo \"url\"","Add repository",
HandleAddRepo); HandleAddRepo);
MainConsole.Instance.Commands.AddCommand("Integration", true, "get repo", "get repo \"url\"", "Sync with a registered repository", MainConsole.Instance.Commands.AddCommand("Integration", true,
"get repo", "get repo \"url\"", "Sync with a registered repository",
HandleGetRepo); HandleGetRepo);
MainConsole.Instance.Commands.AddCommand("Integration", true, MainConsole.Instance.Commands.AddCommand("Integration", true,
@ -134,13 +138,13 @@ namespace OpenSim.Services.IntegrationService
private void HandleListInstalledPlugin(string module, string[] cmd) private void HandleListInstalledPlugin(string module, string[] cmd)
{ {
MainConsole.Instance.Output(m_PluginManager.ListInstalled()); m_PluginManager.ListInstalledAddins();
return; return;
} }
private void HandleListAvailablePlugin(string module, string[] cmd) private void HandleListAvailablePlugin(string module, string[] cmd)
{ {
MainConsole.Instance.Output(m_PluginManager.ListAvailable()); m_PluginManager.ListAvailable();
return; return;
} }
@ -176,7 +180,7 @@ namespace OpenSim.Services.IntegrationService
private void HandleEnableRepo(string module, string[] cmd) private void HandleEnableRepo(string module, string[] cmd)
{ {
MainConsole.Instance.Output(m_PluginManager.EnableRepository()); m_PluginManager.EnableRepository(cmd);
return; return;
} }
@ -188,7 +192,7 @@ namespace OpenSim.Services.IntegrationService
private void HandleListRepos(string module, string[] cmd) private void HandleListRepos(string module, string[] cmd)
{ {
MainConsole.Instance.Output(m_PluginManager.ListRepositories()); m_PluginManager.ListRepositories();
return; return;
} }

View File

@ -26,8 +26,10 @@
*/ */
using System; using System;
using System.Collections;
using Mono.Addins; using Mono.Addins;
using Mono.Addins.Setup; using Mono.Addins.Setup;
using OpenSim.Framework;
namespace OpenSim.Services.IntegrationService namespace OpenSim.Services.IntegrationService
{ {
@ -35,14 +37,12 @@ namespace OpenSim.Services.IntegrationService
public class PluginManager public class PluginManager
{ {
protected AddinRegistry m_Registry; protected AddinRegistry m_Registry;
protected SetupService m_Manager; protected SetupService m_Service;
public PluginManager(string registry_path) public PluginManager(string registry_path)
{ {
m_Registry = new AddinRegistry(".", registry_path); m_Registry = new AddinRegistry(registry_path);
m_Manager = new SetupService(m_Registry); m_Service = new SetupService(m_Registry);
} }
public string Install() public string Install()
@ -60,14 +60,28 @@ namespace OpenSim.Services.IntegrationService
return "CheckInstall"; return "CheckInstall";
} }
public string ListInstalled() public void ListInstalledAddins()
{ {
return "ListInstalled"; ArrayList list = new ArrayList();
list.AddRange(m_Registry.GetAddins());
MainConsole.Instance.Output("Installed Plugins");
foreach (Addin addin in list)
{
MainConsole.Instance.Output(" - " + addin.Name + " " + addin.Version);
}
return;
} }
public string ListAvailable() public void ListAvailable()
{ {
return "ListAvailable"; MainConsole.Instance.Output("Available Plugins");
AddinRepositoryEntry[] addins = m_Service.Repositories.GetAvailableAddins ();
// foreach (PackageRepositoryEntry addin in addins)
foreach (AddinRepositoryEntry addin in addins)
{
MainConsole.Instance.OutputFormat("{0} - {1} ",addin.Addin.Name, addin.RepositoryName );
}
} }
public string ListUpdates() public string ListUpdates()
@ -95,9 +109,9 @@ namespace OpenSim.Services.IntegrationService
return "RemoveRepository"; return "RemoveRepository";
} }
public string EnableRepository() public string EnableRepository(string[] args)
{ {
return "EnableRepository"; return "Test";
} }
public string DisableRepository() public string DisableRepository()
@ -105,14 +119,35 @@ namespace OpenSim.Services.IntegrationService
return DisableRepository(); return DisableRepository();
} }
public string ListRepositories() public void ListRepositories()
{ {
return "ListRepositories"; AddinRepository[] reps = m_Service.Repositories.GetRepositories();
Array.Sort (reps, (r1,r2) => r1.Title.CompareTo(r2.Title));
if (reps.Length == 0)
{
MainConsole.Instance.Output("No repositories have been registered.");
return;
}
int n = 0;
MainConsole.Instance.Output("Registered Repositories");
foreach (AddinRepository rep in reps)
{
string num = n.ToString ();
MainConsole.Instance.Output(num + ") ");
if (!rep.Enabled)
MainConsole.Instance.Output("(Disabled) ");
MainConsole.Instance.Output(rep.Title);
if (rep.Title != rep.Url)
MainConsole.Instance.Output(new string (' ', num.Length + 2) + rep.Url);
n++;
}
} }
public string UpdateRegistry() public void UpdateRegistry()
{ {
return "UpdateRegistry"; m_Registry.Update();
} }
public string AddinInfo() public string AddinInfo()