Exemplo n.º 1
0
        async Task <int> RunNAnt()
        {
            string[] arguments = GetArguments();

            runner = new ProcessRunner();
            runner.WorkingDirectory = workingDirectory;

            runner.RedirectStandardOutputAndErrorToSingleStream = true;
            runner.Start(nantFileName, arguments);

            AbstractRunNAntCommand.Category.AppendLine(runner.CommandLine);

            var writer = new NAntMessageViewCategoryTextWriter(AbstractRunNAntCommand.Category);

            using (TextReader reader = runner.OpenStandardOutputReader()) {
                await reader.CopyToAsync(writer);
            }

            OnNAntStarted();

            await runner.WaitForExitAsync();

            AbstractRunNAntCommand.Category.AppendLine(StringParser.Parse("${res:XML.MainMenu.ToolMenu.ExternalTools.ExitedWithCode} " + runner.ExitCode));

            OnNAntExited(writer.Output, String.Empty, runner.ExitCode);

            return(runner.ExitCode);
        }
        /// <summary>
        /// Asynchronously writes all content from <paramref name="reader"/> to this writer
        /// </summary>
        public Task PipeFromAsync(TextReader reader, bool leaveWriterOpen = false, bool leaveReaderOpen = false)
        {
            if (reader == null)
            {
                throw new ArgumentNullException(nameof(reader));
            }

            return(reader.CopyToAsync(_writer, leaveReaderOpen, leaveWriterOpen));
        }
Exemplo n.º 3
0
        public async Task <int> RunInOutputPadAsync(IOutputCategory outputCategory, string program, params string[] arguments)
        {
            RedirectStandardOutputAndErrorToSingleStream = true;
            Start(program, arguments);
            StringBuilder printedCommandLine = new StringBuilder();

            if (WorkingDirectory != null)
            {
                printedCommandLine.Append(WorkingDirectory);
                printedCommandLine.Append("> ");
            }
            printedCommandLine.Append(CommandLine);
            outputCategory.AppendLine(printedCommandLine.ToString());

            using (TextReader reader = OpenStandardOutputReader()) {
                await reader.CopyToAsync(new MessageViewCategoryTextWriter(outputCategory));
            }
            await WaitForExitAsync();

            outputCategory.AppendLine(StringParser.Parse("${res:XML.MainMenu.ToolMenu.ExternalTools.ExitedWithCode} " + this.ExitCode));
            return(this.ExitCode);
        }
Exemplo n.º 4
0
        /// <summary>
        /// Asynchronously writes all content from <paramref name="reader"/> to this writer
        /// </summary>
        public Task PipeFromAsync(TextReader reader, bool leaveWriterOpen = false, bool leaveReaderOpen = false)
        {
            Throw.IfNull(reader, "reader");

            return(reader.CopyToAsync(this.writer, leaveReaderOpen: leaveReaderOpen, leaveWriterOpen: leaveWriterOpen));
        }
        /// <summary>
        /// Asynchronously writes all content from <paramref name="reader"/> to this writer
        /// </summary>
        public Task PipeFromAsync(TextReader reader, bool leaveWriterOpen = false, bool leaveReaderOpen = false)
        {
            if (reader == null)
            {
                throw new ArgumentNullException(nameof(reader));
            }

            return reader.CopyToAsync(_writer, leaveReaderOpen, leaveWriterOpen);
        }
Exemplo n.º 6
0
        /// <summary>
        /// Asynchronously writes all content from <paramref name="reader"/> to this writer
        /// </summary>
        public Task PipeFromAsync(TextReader reader, bool leaveWriterOpen = false, bool leaveReaderOpen = false)
        {
            Throw.IfNull(reader, "reader");

            return reader.CopyToAsync(this.writer, leaveReaderOpen: leaveReaderOpen, leaveWriterOpen: leaveWriterOpen);
        }