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); } } }
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); }
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(""); }
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); } }
public override void Dispose() { if (outputProgressMonitor != null) { outputProgressMonitor.Dispose(); outputProgressMonitor = null; } base.Dispose(); }
protected override void OnDispose(bool disposing) { if (disposing) { if (outputProgressMonitor != null) { outputProgressMonitor.Dispose(); outputProgressMonitor = null; } } base.OnDispose(disposing); }
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); }
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); }
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)); }
public TaskRunnerProgressMonitor(OutputProgressMonitor outputProgressMonitor) { this.outputProgressMonitor = outputProgressMonitor; AddFollowerMonitor(outputProgressMonitor); }
public TaskRunnerCommandContext(OutputProgressMonitor progressMonitor) { executionService = new TaskRunnerCommandService(progressMonitor); }
internal VimConsoleFactoryService() { console = IdeServices.ProgressMonitorManager.GetOutputProgressMonitor("Vim Output", Stock.Console, true, false, true); }
public TaskRunnerCommandService(OutputProgressMonitor outputProgressMonitor) { this.outputProgressMonitor = outputProgressMonitor; }