Exemplo n.º 1
0
        public override CommandResultCode Execute(IExecutionContext context, CommandArguments args)
        {
            if (!args.MoveNext())
            {
                return(CommandResultCode.SyntaxError);
            }

            if (!(Application is IPluginHandler))
            {
                Error.WriteLine("The application doesn't support plug-ins.");
                return(CommandResultCode.ExecutionFailed);
            }

            ApplicationPlugins plugins = ((IPluginHandler)Application).Plugins;

            string pluginType = args.Current;

            if (!plugins.HasPlugin(pluginType))
            {
                Application.Error.WriteLine("unknown plugin '" + pluginType + "'");
                return(CommandResultCode.ExecutionFailed);
            }
            if (!plugins.Unregister(pluginType))
            {
                return(CommandResultCode.ExecutionFailed);
            }
            return(CommandResultCode.Success);
        }
Exemplo n.º 2
0
        public override CommandResultCode Execute(IExecutionContext context, CommandArguments args)
        {
            if (!args.MoveNext())
            {
                return(CommandResultCode.SyntaxError);
            }

            if (!(Application is IPluginHandler))
            {
                Error.WriteLine("The application doesn't support plug-ins.");
                return(CommandResultCode.ExecutionFailed);
            }

            ApplicationPlugins plugins    = ((IPluginHandler)Application).Plugins;
            string             pluginType = args.Current;

            if (plugins.HasPlugin(pluginType))
            {
                Application.Error.WriteLine("plugin '" + pluginType + "' already loaded");
                return(CommandResultCode.ExecutionFailed);
            }

            Command plugin;

            try {
                plugin = plugins.LoadPlugin(pluginType);
            } catch (Exception e) {
                Application.Error.WriteLine("couldn't load plugin: " + e.Message);
                return(CommandResultCode.ExecutionFailed);
            }
            if (plugin != null)
            {
                plugins.Add(pluginType, plugin);
                Out.Write("adding command: ");
                Out.Write(plugin.Name);
                string[] aliases = plugin.Aliases;
                if (aliases.Length > 0)
                {
                    Out.Write(" (");
                    for (int i = 0; i < aliases.Length; ++i)
                    {
                        Out.Write(aliases[i]);

                        if (i < aliases.Length - 1)
                        {
                            Out.Write(", ");
                        }
                    }

                    Out.Write(")");
                }

                Out.WriteLine();
            }

            return(CommandResultCode.Success);
        }
Exemplo n.º 3
0
 protected ShellApplication()
 {
     output = new ConsoleOutputDevice(System.Console.Out, true);
     message = new ConsoleOutputDevice(System.Console.Error, false);
     input = new ConsoleInputDevice();
     dispatcher = new CommandDispatcher(this);
     if (this is ISettingsHandler)
         settings = new ApplicationSettings(this);
     if (this is IPropertyHandler)
         properties = new PropertyRegistry(this as IPropertyHandler);
     if (this is IPluginHandler)
         plugins = new ApplicationPlugins(this);
     interruptHandler = new ApplicationInterruptionHandler(this);
 }