private void ProcessArguments(ProgramArguments args) { _args = args; var fooOptions = new Options(); if (_args.Flags.ContainsKey("casesensitive")) { fooOptions.CaseInsensitive = _args.Flags["casesensitive"]; } else { // // default to case-sensitive on Unix // fooOptions.CaseInsensitive = !(Environment.OSVersion.Platform == PlatformID.Unix); } _listenPort = DefaultPort; if (_args.Options.ContainsKey("port")) { try { _listenPort = int.Parse(_args.Options["port"]); } catch (FormatException) { // keep default port } } var configPath = DefaultConfig; if (_args.Options.ContainsKey("config")) { configPath = _args.Options["config"]; } try { string err = string.Empty; _config = ServerRepositoryConfigLoader.GetConfig(configPath, out err); if (_config == null) { Trace.TraceError("Error loading FooSync daemon config: {0}", err); throw new Exception(string.Format("Error loading FooSync daemon config: {0}", err)); } } catch (Exception ex) { Trace.TraceError("Error loading FooSync daemon config: {0}: {1}{2}", ex.GetType().Name, ex.Message, ex.StackTrace); throw; } _exceptions = new Dictionary<string, ICollection<string>>(); foreach (var repo in _config.Repositories) { _exceptions.Add(repo.Key, FooSyncEngine.PrepareExceptions(repo.Value.IgnorePatterns)); } _foo = new FooSyncEngine(fooOptions); }
public FooSyncEngine(Options options) { this.Options = options; }
static void Main(string[] args) { var programArgs = new ProgramArguments(args); var fooOptions = new Options(); if (programArgs.Flags.ContainsKey("casesensitive")) { fooOptions.CaseInsensitive = !programArgs.Flags["casesensitive"]; } var foo = new FooSyncEngine(fooOptions); Console.WriteLine("FooSync.ConsoleApp v{0} / FooSync v{1}", System.Reflection.Assembly.GetExecutingAssembly().GetName().Version, foo.GetType().Assembly.GetName().Version.ToString()); Console.WriteLine("{0} / {1} / {2}", Environment.MachineName, Environment.OSVersion.Platform, Environment.OSVersion.VersionString); if (Type.GetType("Mono.Runtime") != null) { Console.WriteLine("Using the Mono runtime."); } Console.WriteLine(); if (programArgs.Flags.ContainsKey("help")) { Console.WriteLine("usage: {0} [options]", ProgramName); //TODO return; } var program = new Program(foo); program.Run(programArgs); }