private static async Task Main()

in tools/nuget2bazel/Program.cs [12:53]


        private static async Task Main(string[] args)
        {
            var parsed = Parser.Default.ParseArguments<AddVerb, DeleteVerb, SyncVerb, UpdateVerb, RulesVerb>(args);
            var result = await parsed.MapResult<AddVerb, DeleteVerb, SyncVerb, UpdateVerb, RulesVerb, Task<int>>(
                async (AddVerb opts) =>
                {
                    var prjConfig = new ProjectBazelConfig(opts);
                    await new AddCommand().Do(prjConfig, opts.Package, opts.Version, opts.MainFile, opts.SkipSha256, opts.Lowest, opts.CustomTargetName);
                    return 0;
                },
                async (DeleteVerb opts) =>
                {
                    var prjConfig = new ProjectBazelConfig(opts);
                    await new DeleteCommand().Do(prjConfig, opts.Package);
                    return 0;
                },
                async (SyncVerb opts) =>
                {
                    var prjConfig = new ProjectBazelConfig(opts);
                    await new SyncCommand().Do(prjConfig);
                    return 0;
                },
                async (UpdateVerb opts) =>
                {
                    var prjConfig = new ProjectBazelConfig(opts);
                    await new UpdateCommand().Do(prjConfig, opts.Package, opts.Version, opts.MainFile, opts.SkipSha256, opts.Lowest, opts.CustomTargetName);
                    return 0;
                },
                async (RulesVerb opts) =>
                {
                    await new RulesCommand().Do(opts.Path);
                    return 0;
                },
                errs =>
                {
                    HelpText.AutoBuild(parsed);
                    return Task.FromResult(-1);
                }
            );

            Environment.Exit(result);
        }