Invalid verbs do not cause errors if a default verb is set
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 3/5
- Tempo estimado
- 1-2 dias
- Facilidade para iniciantes
- 35/100
Direção de pesquisa
Comece com a chamada de Parser.ParseArguments mostrada na issue e reproduza o comportamento usando DefaultVerb.exe foo com o verbo padrão habilitado. Rastreie como um verbo não reconhecido é tratado quando existe um verbo padrão e, em seguida, verifique se a entrada inválida chega ao caminho de erro, em vez de DoSomething ou do verbo padrão.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
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<StartOptions, FinishOptions>(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<Error> errors)
{
Environment.Exit(1);
}
}
`
- Linguagem predominante
- C#
- Estrelas
- 4.8k
- Forks
- 478
- Métricas de merge de PRs
- Nenhum PR com merge em 30d
Guia de contribuição
Nenhum guia de contribuição indexado para este repositório
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de commandlineparser/commandline
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 68/100
commandlineparser/commandline#951 · 1 comentário ·
-
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 70/100
commandlineparser/commandline#880 · 2 reações ·
-
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 45/100
commandlineparser/commandline#952 ·
-
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 35/100
commandlineparser/commandline#948 ·
-
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 35/100
commandlineparser/commandline#947 ·
Todas as issues de commandlineparser/commandline
Issues semelhantes
-
bug frontend good first issue
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
-
NavigationViewItemAutomationPeer implements IInvokeProvider but never advertises the Invoke pattern Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
unoplatform/uno#24629 ·
-
agentic-workflows Needs: Triage :mag: State: In-PR
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 70/100
-
CS0162 "Unreachable code detected" warning from a MSBuildTemp .tmp file in every game project Abertabug
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 90/100
-
Type: enhancement
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 65/100
apache/arrow-adbc#4809 ·