Пример #1
0
        public void Execute(ICommandContext context)
        {
            if (context.Parameters.Length != 2)
            {
                throw new CommandWrongUsageException();
            }

            NuGetPluginLoader pm = (NuGetPluginLoader)context.Container.Resolve <IPluginLoader>("nuget_plugins");

            string repoName   = context.Parameters.Get <string>(0);
            string pluginName = context.Parameters.Get <string>(1);

            var repo = pm.Repositories.FirstOrDefault(c
                                                      => c.Name.Equals(repoName, StringComparison.OrdinalIgnoreCase));

            if (repo == null)
            {
                context.User.SendMessage("Repository not found: " + repoName, Color.DarkRed);
                return;
            }

            if (!pm.Uninstall(repoName, pluginName))
            {
                context.User.SendMessage($"Failed to uninstall \"{pluginName}\"", Color.DarkRed);
                return;
            }

            context.User.SendMessage($"Successfully uninstalled  \"{pluginName}\"", Color.DarkGreen);
            context.User.SendMessage("Restart server to finish uninstall.", Color.Red);
        }
Пример #2
0
        public void Execute(ICommandContext context)
        {
            if (context.Parameters.Length < 2)
            {
                throw new CommandWrongUsageException();
            }

            NuGetPluginLoader pm = (NuGetPluginLoader)context.Container.Resolve <IPluginLoader>("nuget_plugins");

            var args = context.Parameters.ToList();

            string repoName   = args[0];
            string pluginName = args[1];
            string version    = null;
            bool   isPre      = false;

            if (args.Contains("-Pre"))
            {
                isPre = true;
                args.Remove("-Pre");
            }

            if (args.Count > 2)
            {
                version = args[2];
            }

            var repo = pm.Repositories.FirstOrDefault(c
                                                      => c.Name.Equals(repoName, StringComparison.OrdinalIgnoreCase));

            if (repo == null)
            {
                context.User.SendMessage("Repository not found: " + repoName, Color.DarkRed);
                return;
            }

            var result = pm.Install(repoName, pluginName, version, isPre);

            if (result != NuGetInstallResult.Success)
            {
                context.User.SendMessage($"Failed to install \"{pluginName}\": " + result, Color.DarkRed);
                return;
            }

            if (!pm.LoadPlugin(repoName, pluginName))
            {
                context.User.SendMessage($"Failed to initialize \"{pluginName}\"", Color.DarkRed);
                pm.Uninstall(repoName, pluginName);
                return;
            }

            context.User.SendMessage($"Successfully installed \"{pluginName}\"", Color.DarkGreen);
        }
Пример #3
0
        public async Task ExecuteAsync(ICommandContext context)
        {
            if (context.Parameters.Length < 1 || context.Parameters.Length > 3)
            {
                throw new CommandWrongUsageException();
            }

            NuGetPluginLoader pm = (NuGetPluginLoader)context.Container.Resolve <IPluginLoader>("nuget_plugins");

            var args = context.Parameters.ToList();

            string packageName = args[0];
            string repoName    = null;
            string version     = null;
            bool   isPre       = false;

            if (args.Contains("-Pre"))
            {
                isPre = true;
                args.Remove("-Pre");
            }

            if (args.Count > 1)
            {
                version = args[1];
            }

            await context.User.SendMessageAsync($"Installing {packageName}...", Color.White);

            var result = await pm.InstallAsync(packageName, version, isPre);

            if (result.Code != NuGetInstallCode.Success)
            {
                await context.User.SendMessageAsync($"Failed to install \"{packageName}\": " + result.Code, Color.DarkRed);

                return;
            }

            await context.User.SendMessageAsync($"Successfully installed {result.Identity.Id} v{result.Identity.Version}.", Color.DarkGreen);

            await pm.LoadPluginFromNugetAsync(result.Identity);
        }
Пример #4
0
        public async Task ExecuteAsync(ICommandContext context)
        {
            if (context.Parameters.Length != 1)
            {
                throw new CommandWrongUsageException();
            }

            NuGetPluginLoader pm = (NuGetPluginLoader)context.Container.Resolve <IPluginLoader>("nuget_plugins");

            string packageName = context.Parameters[0];

            await context.User.SendMessageAsync($"Removing {packageName}...", Color.White);

            if (!await pm.RemoveAsync(packageName))
            {
                await context.User.SendMessageAsync($"Failed to remove \"{packageName}\"", Color.DarkRed);

                return;
            }

            await context.User.SendMessageAsync($"Successfully removed \"{packageName}\"", Color.DarkGreen);

            await context.User.SendMessageAsync("Restart server to finish removal.", Color.Red);
        }