Example #1
0
        /// <summary>
        /// Creates an event listener that logs using a <see cref="ConsoleSink"/>.
        /// </summary>
        /// <param name="formatter">The formatter.</param>
        /// <param name="colorMapper">The color mapper instance.</param>
        /// <returns>An event listener that uses <see cref="ConsoleSink"/> to display events.</returns>
        public static EventListener CreateListener(IEventTextFormatter formatter = null, IConsoleColorMapper colorMapper = null)
        {
            var listener = new ObservableEventListener();

            listener.LogToConsole(formatter, colorMapper);
            return(listener);
        }
Example #2
0
        private static void Main(string[] args) {
            var processes = new List<Process>();

            if (args.Length == 0) {
                Console.WriteLine("Please provide the process(es) name, file, or address.");
                Console.WriteLine(@"Usage:");
                Console.WriteLine(@"   tfl fancy                      - looks in tfl.exe.config for fancy process.");
                Console.WriteLine(@"   tfl c:\fancy.xml               - looks for processes in c:\fancy.xml file.");
                Console.WriteLine(@"   tfl http://localhost/fancy.xml - makes web request for processes in http://localhost/fancy.xml.");
                return;
            }

            var resource = args[0];

            _options = new Options(CombineArguments(args));
            var listener = new ObservableEventListener();
            listener.EnableEvents(TflEventSource.Log, _options.LogLevel);
            var subscription = listener.LogToConsole(new LegacyLogFormatter());

            try {
                if (OptionsMayExist(args)) {
                    
                    if (_options.Valid()) {
                        if (_options.Mode == "rebuild") {
                            _options.Mode = "init";
                            processes.AddRange(ProcessFactory.Create(resource, new RunLogger(), _options));
                            _options.Mode = "first";
                            processes.AddRange(ProcessFactory.Create(resource, new RunLogger(), _options));
                        } else {
                            processes.AddRange(ProcessFactory.Create(resource, new RunLogger(), _options));
                        }
                    } else {
                        foreach (var problem in _options.Problems) {
                            Console.WriteLine(resource + " | " + problem);
                        }
                        Console.WriteLine(resource + " | Aborting process.");
                        Environment.Exit(1);
                    }
                } else {
                    processes.AddRange(ProcessFactory.Create(resource, new RunLogger()));
                }
            } catch (Exception e) {
                Console.WriteLine(e.Message);
                listener.DisableEvents(TflEventSource.Log);
                listener.Dispose();
                return;
            }

            foreach (var process in processes) {
                try {
                    process.ExecuteScaler();
                } catch (TransformalizeException e) {
                    Console.WriteLine(e.Message);
                    break;
                }
            }


            listener.DisableEvents(TflEventSource.Log);
            listener.Dispose();
            subscription.Dispose();
        }
Example #3
0
        private static void Main(string[] args)
        {
            var processes = new List <Process>();

            if (args.Length == 0)
            {
                Console.WriteLine("Please provide the process(es) name, file, or address.");
                Console.WriteLine(@"Usage:");
                Console.WriteLine(@"   tfl fancy                      - looks in tfl.exe.config for fancy process.");
                Console.WriteLine(@"   tfl c:\fancy.xml               - looks for processes in c:\fancy.xml file.");
                Console.WriteLine(@"   tfl http://localhost/fancy.xml - makes web request for processes in http://localhost/fancy.xml.");
                return;
            }

            var resource = args[0];

            _options = new Options(CombineArguments(args));
            var listener = new ObservableEventListener();

            listener.EnableEvents(TflEventSource.Log, _options.LogLevel);
            var subscription = listener.LogToConsole(new LegacyLogFormatter());

            try {
                if (OptionsMayExist(args))
                {
                    if (_options.Valid())
                    {
                        if (_options.Mode == "rebuild")
                        {
                            _options.Mode = "init";
                            processes.AddRange(ProcessFactory.Create(resource, new RunLogger(), _options));
                            _options.Mode = "first";
                            processes.AddRange(ProcessFactory.Create(resource, new RunLogger(), _options));
                        }
                        else
                        {
                            processes.AddRange(ProcessFactory.Create(resource, new RunLogger(), _options));
                        }
                    }
                    else
                    {
                        foreach (var problem in _options.Problems)
                        {
                            Console.WriteLine(resource + " | " + problem);
                        }
                        Console.WriteLine(resource + " | Aborting process.");
                        Environment.Exit(1);
                    }
                }
                else
                {
                    processes.AddRange(ProcessFactory.Create(resource, new RunLogger()));
                }
            } catch (Exception e) {
                Console.WriteLine(e.Message);
                listener.DisableEvents(TflEventSource.Log);
                listener.Dispose();
                return;
            }

            foreach (var process in processes)
            {
                try {
                    process.ExecuteScaler();
                } catch (TransformalizeException e) {
                    Console.WriteLine(e.Message);
                    break;
                }
            }


            listener.DisableEvents(TflEventSource.Log);
            listener.Dispose();
            subscription.Dispose();
        }