コード例 #1
0
        /// <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);
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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
                });
            }
        }
コード例 #4
0
 public static string ToCommandLine(this ITaskRunnerCommand command)
 {
     return($"{command.Executable} {command.GetFullArgs ()}");
 }