private void runStep(IRippleStep step, int number, int total) { _logger.Trace(string.Empty); _logger.Trace("{0} / {1} - {2}", number.ToString().PadLeft(3), total.ToString().PadLeft(3), step.ToString()); _logger.Indent(() => { try { step.Execute(_runner); } catch (Exception ex) { var start = Console.ForegroundColor; Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine(); Console.WriteLine(ex.ToString()); Console.WriteLine(); Console.ForegroundColor = start; throw; } }); }
public RippleStepRunner(IProcessRunner runner, IFileSystem fileSystem, IRippleLogger logger, RipplePlanRequirements requirements) { _runner = runner; _fileSystem = fileSystem; _logger = logger; _requirements = requirements; _logCallback = requirements.Verbose ? (Action<string>) (text => _logger.Trace(text)) : text => { }; }
public RippleStepRunner(IProcessRunner runner, IFileSystem fileSystem, IRippleLogger logger, RipplePlanRequirements requirements) { _runner = runner; _fileSystem = fileSystem; _logger = logger; _requirements = requirements; _logCallback = requirements.Verbose ? (Action <string>)(text => _logger.Trace(text)) : text => { }; }
public void BuildSolution(Solution solution) { var stopwatch = new Stopwatch(); stopwatch.Start(); if (solution.Dependencies.Any()) { _logger.Trace("Pausing to try to let the file system quiet down..."); Thread.Sleep(1000); } var process = solution.CreateBuildProcess(_requirements.Fast); _logger.Trace("Trying to run {0} {1} in directory {2}", process.FileName, process.Arguments, process.WorkingDirectory); ProcessReturn processReturn; _logger.Indent(() => { processReturn = _runner.Run(process, new TimeSpan(0, 5, 0), _logCallback); _fileSystem.WriteLogFile(solution.Name + ".log", processReturn.OutputText); stopwatch.Stop(); _logger.Trace("Completed in {0} milliseconds", stopwatch.ElapsedMilliseconds); if (processReturn.ExitCode != 0) { _logger.Trace("Opening the log file for " + solution.Name); new LogCommand().Execute(new LogInput() { SolutionFlag = solution.Name, OpenFlag = true }); throw new ApplicationException("Command line execution failed!!!!"); } }); }