Example #1
0
        static async Task <int> Main(string[] args)
        {
            if (args.Length == 0)
            {
                args = new string[] { "--help" };
            }
            else if (args.Length == 1 && args[0].Equals("example") == false) // support drag & drop
            {
                ToCodeVerb toCode = new ToCodeVerb();
                toCode.inputPaths = args;
                toCode.fileName   = Path.GetFileName(args[0]) + "_gen";

                var result = await ToCodeVerb.Verb(toCode);

                return((int)result);
            }

            // var commandLineParser = new Parser(settings => settings.CaseSensitive = false);
            var commandLineParser = Parser.Default;
            var mainResult        = await commandLineParser
                                    .ParseArguments <ToCodeVerb, ExampleVerb>(args)
                                    .MapResult(
                (ToCodeVerb toCode) => ToCodeVerb.Verb(toCode),
                (ExampleVerb example) => ExampleVerb.Verb(example),
                err => Task.FromResult(ErrorCode.NoVerb));

            if (mainResult == ErrorCode.NoVerb)
            {
                Console.WriteLine($"wait input for exit..");
                Console.ReadKey();
            }

            return((int)mainResult);
        }