using MultiRepositories; using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Net; using System.Text; using System.Threading.Tasks; using CommandLine; using Newtonsoft.Json; namespace RepositoryCache { class Program { static void Main(string[] args) { var options = new Options(); Parser.Default.ParseArguments(args) .WithParsed(opts => RunOptionsAndReturnExitCode(opts)) .WithNotParsed((errs) => HandleParseError(errs)); } private static void HandleParseError(IEnumerable errs) { } private static void RunOptionsAndReturnExitCode(Options opts) { var settingsFile = opts.Settings; if (!string.IsNullOrWhiteSpace(settingsFile) && File.Exists(settingsFile)) { Console.WriteLine("Reading settings from " + settingsFile); opts = JsonConvert.DeserializeObject(File.ReadAllText(settingsFile)); } if (string.IsNullOrWhiteSpace(opts.Path)) { opts.Path = Directory.GetCurrentDirectory(); } opts.Settings = settingsFile; var settings = JsonConvert.SerializeObject(opts); Console.WriteLine(settings); var shhtp = new SimpleHTTPServer(opts.Path, opts.Port,opts.LogRequests,opts.Urls,opts.Ignores); while (Console.ReadKey().KeyChar != 'q') { Console.WriteLine(""); continue; } shhtp.Stop(); } } }