static void InitializeCommandLineArguments(CommandLineParser commandLineParser, Converter converter) { var helpOption = new Option() { Switch = true, Command = x => PrintUsage(), }; commandLineParser.Options["h"] = helpOption; commandLineParser.Options["help"] = helpOption; var encodingsOption = new Option() { Switch = true, Command = x => PrintEncodings(), }; commandLineParser.Options["e"] = encodingsOption; commandLineParser.Options["encodings"] = encodingsOption; var targetEncodingOption = new Option() { Command = x => converter.TargetEncoding = Encoding.GetEncoding(x) }; commandLineParser.Options["t"] = targetEncodingOption; commandLineParser.Options["to"] = targetEncodingOption; var sourceEncodingOption = new Option() { Command = x => converter.SourceEncoding = Encoding.GetEncoding(x) }; commandLineParser.Options["f"] = sourceEncodingOption; commandLineParser.Options["from"] = sourceEncodingOption; var ignoreEncodingOption = new Option() { Command = x => converter.SkipEncodings.Add(Encoding.GetEncoding(x)) }; commandLineParser.Options["i"] = ignoreEncodingOption; commandLineParser.Options["ignore"] = ignoreEncodingOption; var logFileOption = new Option() { Command = x => converter.Logger.Writers.Add(new StreamWriter(File.Open(x, FileMode.Append))) }; commandLineParser.Options["l"] = logFileOption; commandLineParser.Options["log"] = logFileOption; var verboseOption = new Option() { Switch = true, Command = x => converter.Logger.Level = LogLevel.Debug }; commandLineParser.Options["v"] = verboseOption; commandLineParser.Options["verbose"] = verboseOption; }
static void Main(string[] args) { Converter converter = new Converter(); var commandLineParser = new CommandLineParser(); InitializeCommandLineArguments(commandLineParser, converter); if (args.Length == 0) PrintUsage(); args = commandLineParser.Parse(args); converter.Init(); foreach (var path in args) { converter.ConvertFile(path); } #if DEBUG Console.WriteLine("Press any key to continue..."); Console.ReadKey(); #endif }