using System; using System.IO; namespace Rac { internal class Program { //TODO: Folder browser private static void Main(string[] args) { var db = "project.db3"; void PrintUsage() { Console.WriteLine("args: [mode] [args]"); Console.WriteLine(" crawler [project.db3] * default mode"); Console.WriteLine(" offline [project.db3]"); Console.WriteLine(" browser [project.db3]"); } if (args.Length == 0) { RunCrawler(db); } else { if (args.Length > 1) db = args[1]; switch (args[0].ToLower()) { default: PrintUsage(); break; case "crawler": RunCrawler(db); break; case "offline": RunOffline(db); break; case "browser": RunBrowser(db); break; } } Console.Write("Finished, Press ENTER to exit..."); Console.ReadLine(); } private static void RunCrawler(string db) { var inst = new Crawler(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, db)); inst.Log += (sender, ea) => Console.WriteLine($"RAC -- {ea.Level} -- {ea.Log}"); Console.WriteLine("Press ENTER to stop."); inst.Start(); Console.ReadLine(); if (inst.IsRunning) { Console.WriteLine("Stopping..."); inst.Stop(); Console.WriteLine(); } } private static void RunOffline(string db) { var inst = new OfflineWebServer(db); inst.Log += (sender, ea) => Console.WriteLine($"OWS -- {ea.Level} -- {ea.Log}"); Console.WriteLine("Press ENTER to stop."); inst.Start(); Console.ReadLine(); inst.Stop(); } private static void RunBrowser(string db) { var inst = new FileBrowseServer(db); inst.Log += (sender, ea) => Console.WriteLine($"OWS -- {ea.Level} -- {ea.Log}"); Console.WriteLine("Press ENTER to stop."); inst.Start(); Console.ReadLine(); inst.Stop(); } } }