Make --regexp required, show help if it is not given.

This commit is contained in:
tastytea 2021-05-24 05:45:42 +02:00
parent 4b2fbecf93
commit 2ab4705475
Signed by: tastytea
GPG Key ID: CFC39497F1B26E07
1 changed files with 12 additions and 3 deletions

View File

@ -27,6 +27,7 @@
#include <boost/program_options/variables_map.hpp> #include <boost/program_options/variables_map.hpp>
#include <cstdlib> #include <cstdlib>
#include <exception>
#include <fstream> #include <fstream>
#include <iostream> #include <iostream>
#include <string> #include <string>
@ -61,8 +62,8 @@ po::variables_map parse_options(int argc, char *argv[])
("ignore-case,i", ("ignore-case,i",
translate("Ignore case distinctions in pattern and data.") translate("Ignore case distinctions in pattern and data.")
.str().data()) .str().data())
("regexp,e", po::value<std::vector<std::string>>()->composing() ("regexp,e", po::value<std::vector<std::string>>()
->value_name(translate("PATTERN")), ->value_name(translate("PATTERN"))->composing()->required(),
translate("Use additional PATTERN for matching.").str().data()) translate("Use additional PATTERN for matching.").str().data())
; ;
@ -89,7 +90,15 @@ po::variables_map parse_options(int argc, char *argv[])
po::store(po::parse_config_file(configfile, options_visible, true), vm); po::store(po::parse_config_file(configfile, options_visible, true), vm);
configfile.close(); configfile.close();
po::notify(vm); try
{
po::notify(vm);
}
catch (const boost::program_options::required_option &e)
{
cout << options_visible;
std::rethrow_exception(std::current_exception());
}
if (vm.count("help") != 0) if (vm.count("help") != 0)
{ {