-
-
Notifications
You must be signed in to change notification settings - Fork 65
Open
Labels
enhancementNew feature or requestNew feature or request
Description
If you misspell or provide an option that doesn't have a parser, when at least one argument is present in the parser, the returned error code isn't very user friendly.
Easiest to show with an example.
Given this code
#include <lyra/lyra.hpp>
#include <filesystem>
#include <iostream>
int main(int argc, char** argv)
{
bool showHelp=false;
bool verbose = false;
auto cli = lyra::cli_parser();
cli.add_argument(lyra::help(showHelp));
cli.add_argument(lyra::opt(verbose)
.name("--verbose").help("Verbose logging").optional());
std::filesystem::path projectDirectory;
cli.add_argument(lyra::arg(projectDirectory, "ProjectDirectory")
.required().help("Project directory"));
auto result = cli.parse({ argc, argv });
if (!result)
{
std::cerr << result.errorMessage() << std::endl;
return 1;
}
std::cout << projectDirectory.string() << std::endl;
return 0;
}
and the commandline arguments
--foo /my/project/directory
The returned error is
Unrecognized token: /my/project/directory
Expected: Parser should recognize the '--' or '-' prefix on '--foo' and give an error about the missing option.
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request
Type
Projects
Status
🆕 New