commandlineparser / commandlineparser/commandline
Default supported verbs/options should not return non-zero exit code
- Lingua principale
- C#
- Stelle
- 4.8k
- Fork
- 478
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Descrizione
This library should not return a non-zero exit code for the default supported verbs and options:
- help
- version
- --help
- --version
```csharp
using System;
using CommandLine;
public class Program
{
[Verb("add", HelpText = "Add file contents to the index.")]
class AddOptions
{
[Option(Default = false, HelpText = "Prints all messages to standard output.")]
public bool Verbose { get; set; }
}
[Verb("commit", HelpText = "Record changes to the repository.")]
class CommitOptions
{
}
static int Main(string[] args)
{
var exitCode = Parser.Default.ParseArguments(args)
.MapResult(
(AddOptions opts) => 0,
(CommitOptions opts) => 0,
errs => 1
);
Console.WriteLine($"exitCode = {exitCode}");
return exitCode;
}
}
```
Executing this code results in the following outputs:
```
> ConsoleApp1.exe version
ConsoleApp1 1.0.0.0
exitCode = 1
> ConsoleApp1.exe help
ConsoleApp1 1.0.0.0
Copyright c 2022
add Add file contents to the index.
commit Record changes to the repository.
help Display more information on a specific command.
version Display version information.
exitCode = 1
> ConsoleApp1.exe --version
ConsoleApp1 1.0.0.0
exitCode = 1
> ConsoleApp1.exe --help
ConsoleApp1 1.0.0.0
Copyright c 2022
add Add file contents to the index.
commit Record changes to the repository.
help Display more information on a specific command.
version Display version information.
exitCode = 1
> ConsoleApp1.exe help add
ConsoleApp1 1.0.0.0
Copyright c 2022
--verbose (Default: false) Prints all messages to standard output.
--help Display this help screen.
--version Display version information.
exitCode = 1
> ConsoleApp1.exe add --version
ConsoleApp1 1.0.0.0
exitCode = 1
> ConsoleApp1.exe add --help
ConsoleApp1 1.0.0.0
Copyright c 2022
--verbose (Default: false) Prints all messages to standard output.
--help Display this help screen.
--version Display version information.
exitCode = 1
```
As far as I can tell, those errors can be handled by the consumer as in your [code example](https://dotnetfiddle.net/wrcAxr) or by doing it like suggested in #660.
However, since those verbs/options are **supported** they should not result in an error and therefore also should not require to be handled by the consumer.
Guida per i contributori
Nessuna guida per i contributori indicizzata per questo repository
Valutazione
Questa issue non è ancora stata valutata.