Example #1
0
        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;
                }
            });
        }
Example #2
0
        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 => { };
        }
Example #3
0
        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 => { };
        }
Example #4
0
        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!!!!");
                }
            });
        }