Program.cs 791 B

12345678910111213141516171819202122
  1. using System.Linq;
  2. using ArcToolkitCLI.Commands;
  3. using CommandLine;
  4. namespace ArcToolkitCLI
  5. {
  6. internal class Program
  7. {
  8. private static int Main(string[] args)
  9. {
  10. var commandTypes = typeof(Program).Assembly.GetTypes()
  11. .Where(t => !t.IsInterface && !t.IsAbstract &&
  12. typeof(ICommand).IsAssignableFrom(t)).ToArray();
  13. return new Parser(with =>
  14. {
  15. with.IgnoreUnknownArguments = true;
  16. with.AutoHelp = true;
  17. with.HelpWriter = Parser.Default.Settings.HelpWriter;
  18. }).ParseArguments(args, commandTypes).MapResult((object t) => ((ICommand)t).Run(), errs => 1);
  19. }
  20. }
  21. }