commandlineparser / commandlineparser/commandline

Invalid verbs do not cause errors if a default verb is set

Aperta
#849 1 commento 1 reazione 0 assegnatari Vedi su GitHub
Lingua principale
C#
Stelle
4.8k
Fork
478
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

Below is a very simplified C# console application I called DefaultVerb. Running the application with **start** or **finish** works as expected, outputting Start or Finish correctly, but if I run the application with **DefaultVerb.exe foo**, it outputs Start. If I set isDefault to false, and run **DefaultVerb.exe foo** I receive the following expected error:
`ERROR(S):
Verb 'foo' is not recognized.
--help Display this help screen.
--version Display version information.
`
When I have isDefault: true on my verb, what should be the behavior if I pass in an invalid verb? I'm not expecting a bad verb to run my default verb.

`
using CommandLine;
using System;

internal class Program
{
[Verb("start", isDefault: true, HelpText = "start help")]
class StartOptions
{
}

[Verb("finish", HelpText = "finish help")]
class FinishOptions
{
}

static void Main(string[] args)
{
var parser = new Parser(settings =>
{
settings.AutoVersion = false;
settings.CaseSensitive = false;
settings.HelpWriter = Console.Out;
});

parser.ParseArguments(args)
.WithNotParsed(ExitWithError)
.WithParsed(DoSomething);
}

static void DoSomething(object commandObj)
{
switch (commandObj)
{
case StartOptions:
Console.WriteLine("Start");
break;
case FinishOptions:
Console.WriteLine("Finish");
break;
}
}
static void ExitWithError(IEnumerable errors)
{
Environment.Exit(1);
}
}
`

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Direzione di ricerca

Inizia con la chiamata a Parser.ParseArguments mostrata nell’issue e riproduci il comportamento usando DefaultVerb.exe foo con il verbo predefinito abilitato. Traccia come viene gestito un verbo non riconosciuto quando esiste un verbo predefinito, quindi verifica che l’input non valido raggiunga il percorso di errore invece di DoSomething o del verbo predefinito.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
csharp
Ambito
cli
Tipo di issue
Bug
Difficoltà
3/5
Tempo stimato
1-2 giorni
Stato di attività
Ferma
Chiarezza
Abbastanza chiara
Idoneità per principianti
35/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.