ConvertCommand.cs 893 B

12345678910111213141516171819202122232425
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using ArcToolkitCLI.Commands.Converters;
  5. using CommandLine;
  6. namespace ArcToolkitCLI.Commands
  7. {
  8. [Verb("convert", HelpText = "Convert between common data types")]
  9. public class ConvertCommand : ICommand
  10. {
  11. public int Run()
  12. {
  13. var commandTypes = typeof(ConvertCommand).Assembly.GetTypes()
  14. .Where(t => !t.IsInterface && !t.IsAbstract && typeof(IConverterCommand).IsAssignableFrom(t)).ToArray();
  15. return new Parser(with =>
  16. {
  17. with.IgnoreUnknownArguments = true;
  18. with.HelpWriter = Parser.Default.Settings.HelpWriter;
  19. }).ParseArguments(Environment.GetCommandLineArgs().Skip(2), commandTypes)
  20. .MapResult((object t) => ((IConverterCommand)t).Run(), errs => 1);
  21. }
  22. }
  23. }