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(); }