commandlineparser / commandline

The best C# command line parser that brings standardized *nix getopt style, for .NET. Includes F# support
MIT License
4.55k stars 478 forks source link

Code crashes without any concrete error and no help documents #928

Open HackPoint opened 5 months ago

HackPoint commented 5 months ago

Basic example crashes with this error on start:

ERROR(S): No verb selected. add Add file contents to the index. commit Record changes to the repository. clone Clone a repository into a new directory. help Display more information on a specific command. version Display version information.

Process finished with exit code 1.

 [Verb("add", HelpText = "Add file contents to the index.")]
    class AddOptions {
        //normal options here
    }
    [Verb("commit", HelpText = "Record changes to the repository.")]
    class CommitOptions {
        //commit options here
    }
    [Verb("clone", HelpText = "Clone a repository into a new directory.")]
    class CloneOptions {
        //clone options here
    }

    static int Main(string[] args) {
        return CommandLine.Parser.Default.ParseArguments<AddOptions, CommitOptions, CloneOptions>(args)
            .MapResult(
                (AddOptions opts) => RunAddAndReturnExitCode(opts),
                (CommitOptions opts) => RunCommitAndReturnExitCode(opts),
                (CloneOptions opts) => RunCloneAndReturnExitCode(opts),
                errs => 1);
    }

    private static int RunCloneAndReturnExitCode(CloneOptions opts)
    {
        return 1;
    }

    private static int RunCommitAndReturnExitCode(CommitOptions opts)
    {
        return 1;
    }

    private static int RunAddAndReturnExitCode(AddOptions opts)
    {
        return 0;
    }
}
dafbyte commented 3 months ago

Looks like you are missing the argument in the CLI or IDE. Did you manage to work it out? @HackPoint