Esempio n. 1
0
        public async Task <ITaskRunnerCommandResult> RunTaskAsync(TaskRunnerWithOptions task, bool clearConsole = true)
        {
            Runtime.AssertMainThread();

            RunningTaskInformation runningTask = null;

            try {
                Xwt.NotebookTab       tab             = widget.GetTaskOutputTab(task.TaskRunner.Name);
                OutputProgressMonitor progressMonitor = widget.GetProgressMonitor(tab, clearConsole);

                task.ApplyOptionsToCommand();

                var context = new TaskRunnerCommandContext(progressMonitor);
                runningTask = new RunningTaskInformation(context, task);
                TaskRunnerServices.Workspace.AddRunningTask(runningTask);

                widget.OpenTaskOutputTab(tab, runningTask);

                var result = await task.TaskRunner.Invoke(context);

                widget.ShowResult(tab, result);
                return(result);
            } finally {
                if (runningTask != null)
                {
                    TaskRunnerServices.Workspace.RemoveRunningTask(runningTask);
                    widget.HideRunningStatus(runningTask);
                }
            }
        }
Esempio n. 2
0
        async Task <bool> InstallNuGetPackagesAsync(OutputProgressMonitor progressMonitor)
        {
            progressMonitor.Console.Debug(0, "", GettextCatalog.GetString("Checking if needed NuGet packages are already installed...\n"));
            var refsToAdd         = new List <PackageManagementPackageReference> ();
            var installedPackages = PackageManagementServices.ProjectOperations.GetInstalledPackages(project);

            var packagesToInstall = await GetPackagesToInstallAsync();

            foreach (var dep in packagesToInstall)
            {
                if (installedPackages.FirstOrDefault(x => x.Id.Equals(dep.PackageId, StringComparison.Ordinal)) == null)
                {
                    refsToAdd.Add(new PackageManagementPackageReference(dep.PackageId, dep.MaxVersion));
                }
            }

            if (refsToAdd.Count > 0)
            {
                await progressMonitor.Console.Log.WriteLineAsync($"Adding needed NuGet packages ({string.Join (", ", refsToAdd.Select (x => x.Id))})");

                try {
                    await PackageManagementServices.ProjectOperations.InstallPackagesAsync(project, refsToAdd, licensesAccepted : true)
                    .ConfigureAwait(false);
                } catch (Exception ex) {
                    progressMonitor.ReportError($"Failed adding packages: {ex.Message}", ex);
                    return(false);
                }
            }

            return(true);
        }
Esempio n. 3
0
        async Task <bool> InstallNuGetPackagesAsync(OutputProgressMonitor progressMonitor)
        {
            progressMonitor.Console.Debug(0, "", "Checking if needed NuGet packages are already installed...\n");
            var refsToAdd         = new List <PackageManagementPackageReference> ();
            var installedPackages = PackageManagementServices.ProjectOperations.GetInstalledPackages(project);

            foreach (var dep in new [] {
                "Microsoft.EntityFrameworkCore.SqlServer",
                "Microsoft.EntityFrameworkCore.Tools",
                "Microsoft.Extensions.Logging.Debug",
                "Microsoft.VisualStudio.Web.CodeGeneration.Design"
            })
            {
                if (installedPackages.FirstOrDefault(x => x.Id.Equals(dep, StringComparison.Ordinal)) == null)
                {
                    refsToAdd.Add(new PackageManagementPackageReference(dep, null));
                }
            }

            if (refsToAdd.Count > 0)
            {
                await progressMonitor.Console.Log.WriteLineAsync($"Adding needed NuGet packages ({string.Join (", ", refsToAdd.Select (x => x.Id))})");

                try {
                    await PackageManagementServices.ProjectOperations.InstallPackagesAsync(project, refsToAdd, licensesAccepted : true)
                    .ConfigureAwait(false);
                } catch (Exception ex) {
                    progressMonitor.ReportError($"Failed adding packages: {ex.Message}", ex);
                    return(false);
                }
            }

            return(true);
        }
        public static void Clean(Project project, OutputProgressMonitor monitor = null)
        {
            monitor?.Log.WriteLine($"{project.Name}をクリーン...");

            project.Clean(ProgressMonitorService.CleanProgressMonitor,
                          project.DefaultConfiguration.Selector);

            var path = project.BaseDirectory.FullPath;

            var binPath = Path.Combine(path, "bin");

            if (Directory.Exists(binPath))
            {
                Directory.Delete(binPath, true);
                monitor?.Log.WriteLine($"{binPath}を削除しました!");
            }

            var objPath = Path.Combine(path, "obj");

            if (Directory.Exists(objPath))
            {
                Directory.Delete(objPath, true);
                monitor?.Log.WriteLine($"{objPath}を削除しました!");
            }

            monitor?.Log.WriteLine("完了");
            monitor?.Log.WriteLine("");
        }
Esempio n. 5
0
        public PackageManagementProgressMonitor(OutputProgressMonitor consoleMonitor, ProgressMonitor statusMonitor)
        {
            AddFollowerMonitor(statusMonitor);
            this.consoleMonitor = consoleMonitor;

            consoleMonitorReg = consoleMonitor.CancellationToken.Register(OnCancelRequested);
            statusMonitorReg  = statusMonitor.CancellationToken.Register(OnCancelRequested);
        }
 public OutputLogger()
 {
     if (monitor == null)
     {
         toolMonitor = MonoDevelop.Ide.IdeApp.Workbench.ProgressMonitors.GetToolOutputProgressMonitor(true);
         monitor     = MonoDevelop.Ide.IdeApp.Workbench.ProgressMonitors.GetOutputProgressMonitor("Meadow", IconId.Null, true, true, true);
     }
 }
Esempio n. 7
0
 public override void Dispose()
 {
     if (outputProgressMonitor != null)
     {
         outputProgressMonitor.Dispose();
         outputProgressMonitor = null;
     }
     base.Dispose();
 }
Esempio n. 8
0
 protected override void OnDispose(bool disposing)
 {
     if (disposing)
     {
         if (outputProgressMonitor != null)
         {
             outputProgressMonitor.Dispose();
             outputProgressMonitor = null;
         }
     }
     base.OnDispose(disposing);
 }
Esempio n. 9
0
        async Task <bool> InstallDotNetToolAsync(OutputProgressMonitor progressMonitor)
        {
            if (!DotNetCoreGlobalToolManager.IsInstalled(toolName))
            {
                if (!await DotNetCoreGlobalToolManager.Install(toolName, progressMonitor.CancellationToken))
                {
                    progressMonitor.ReportError($"Could not install {toolName} tool");
                    return(false);
                }
            }

            return(true);
        }
Esempio n. 10
0
        public ProgressMonitor CreateProgressMonitor(string title)
        {
            OutputProgressMonitor consoleMonitor = CreatePackageConsoleOutputMonitor();

            Pad pad = IdeApp.Workbench.ProgressMonitors.GetPadForMonitor(consoleMonitor);

            ProgressMonitor statusMonitor = IdeApp.Workbench.ProgressMonitors.GetStatusProgressMonitor(
                title,
                Stock.StatusSolutionOperation,
                false,
                false,
                false,
                pad);

            return(new PackageManagementProgressMonitor(consoleMonitor, statusMonitor));
        }
        static Task Update(
            OutputProgressMonitor progressMonitor,
            IEnumerator <ProjectFile> files,
            bool force)
        {
            var parameters = new object [] {
                progressMonitor,
                files,
                force,
                0,
                0,
                0
            };
            var result = updateMethod.Invoke(null, parameters) as Task;

            if (result != null)
            {
                return(result);
            }
            return(Task.CompletedTask);
        }
Esempio n. 12
0
        public ProgressMonitor CreateProgressMonitor(
            string title,
            bool clearConsole,
            CancellationTokenSource cancellationTokenSource)
        {
            ConfigureConsoleClearing(clearConsole);

            OutputProgressMonitor consoleMonitor = CreatePackageConsoleOutputMonitor();

            Pad pad = Runtime.RunInMainThread(() => IdeApp.Workbench.ProgressMonitors.GetPadForMonitor(consoleMonitor)).Result;

            ProgressMonitor statusMonitor = IdeApp.Workbench.ProgressMonitors.GetStatusProgressMonitor(
                title,
                Stock.StatusSolutionOperation,
                false,
                false,
                false,
                pad,
                true);

            return(new PackageManagementProgressMonitor(consoleMonitor, statusMonitor, cancellationTokenSource));
        }
Esempio n. 13
0
 public TaskRunnerProgressMonitor(OutputProgressMonitor outputProgressMonitor)
 {
     this.outputProgressMonitor = outputProgressMonitor;
     AddFollowerMonitor(outputProgressMonitor);
 }
Esempio n. 14
0
 public TaskRunnerCommandContext(OutputProgressMonitor progressMonitor)
 {
     executionService = new TaskRunnerCommandService(progressMonitor);
 }
Esempio n. 15
0
 internal VimConsoleFactoryService()
 {
     console = IdeServices.ProgressMonitorManager.GetOutputProgressMonitor("Vim Output", Stock.Console, true, false, true);
 }
Esempio n. 16
0
 public TaskRunnerCommandService(OutputProgressMonitor outputProgressMonitor)
 {
     this.outputProgressMonitor = outputProgressMonitor;
 }