/// <summary> /// Includes the options as arguments if they are specified. /// </summary> public static string GetFullArgs(this ITaskRunnerCommand command) { if (command.Options == null) { return(command.Args); } return(command.Args + " " + command.Options); }
private bool IsSameCommand(ITaskRunnerCommand command1, ITaskRunnerCommand command2) { if (command1.Args == command2.Args && command1.Executable == command2.Executable && command1.Options == command2.Options && command1.WorkingDirectory == command2.WorkingDirectory) { return(true); } return(false); }
public async Task <ITaskRunnerCommandResult> ExecuteCommand(ITaskRunnerCommand command) { using (var monitor = new TaskRunnerProgressMonitor(outputProgressMonitor)) { monitor.Log.WriteLine(command.ToCommandLine()); var result = Runtime.ProcessService.StartConsoleProcess( command.Executable, command.GetFullArgs(), command.WorkingDirectory, monitor.Console); currentOperation = result; await result.Task; currentOperation = null; return(new TaskRunnerCommandResult { StandardOutput = monitor.GetStandardOutputText(), StandardError = monitor.GetStandardErrorText(), ExitCode = result.ExitCode }); } }
public static string ToCommandLine(this ITaskRunnerCommand command) { return($"{command.Executable} {command.GetFullArgs ()}"); }