mirror of
https://github.com/KingDuckZ/dindexer.git
synced 2025-07-16 16:24:12 +00:00
Hack to retrieve the wrong value from boost's exception.
This commit is contained in:
parent
8a4afa241e
commit
0373743b61
2 changed files with 20 additions and 2 deletions
|
@ -23,6 +23,16 @@
|
||||||
namespace po = boost::program_options;
|
namespace po = boost::program_options;
|
||||||
|
|
||||||
namespace din {
|
namespace din {
|
||||||
|
ValidationError::ValidationError (const po::validation_error& parOther) :
|
||||||
|
po::validation_error(parOther)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
const std::string& ValidationError::raw_value() const {
|
||||||
|
auto it_ret = m_substitutions.find("value");
|
||||||
|
return it_ret->second;
|
||||||
|
}
|
||||||
|
|
||||||
bool parse_commandline (int parArgc, char* parArgv[], po::variables_map& parVarMap) {
|
bool parse_commandline (int parArgc, char* parArgv[], po::variables_map& parVarMap) {
|
||||||
po::options_description set_options(ACTION_NAME " options");
|
po::options_description set_options(ACTION_NAME " options");
|
||||||
//set_options.add_options()
|
//set_options.add_options()
|
||||||
|
@ -44,8 +54,8 @@ namespace din {
|
||||||
try {
|
try {
|
||||||
po::store(po::command_line_parser(parArgc, parArgv).options(all)/*.positional(pd)*/.run(), parVarMap);
|
po::store(po::command_line_parser(parArgc, parArgv).options(all)/*.positional(pd)*/.run(), parVarMap);
|
||||||
}
|
}
|
||||||
catch (const po::unknown_option& err) {
|
catch (const po::validation_error& err) {
|
||||||
throw std::invalid_argument(err.what());
|
throw ValidationError(err);
|
||||||
}
|
}
|
||||||
|
|
||||||
po::notify(parVarMap);
|
po::notify(parVarMap);
|
||||||
|
|
|
@ -23,6 +23,14 @@
|
||||||
#include "dindexer-common/mediatypes.hpp"
|
#include "dindexer-common/mediatypes.hpp"
|
||||||
|
|
||||||
namespace din {
|
namespace din {
|
||||||
|
class ValidationError : boost::program_options::validation_error {
|
||||||
|
public:
|
||||||
|
explicit ValidationError ( const boost::program_options::validation_error& parOther );
|
||||||
|
~ValidationError ( void ) noexcept = default;
|
||||||
|
|
||||||
|
const std::string& raw_value ( void ) const;
|
||||||
|
};
|
||||||
|
|
||||||
bool parse_commandline ( int parArgc, char* parArgv[], boost::program_options::variables_map& parVarMap );
|
bool parse_commandline ( int parArgc, char* parArgv[], boost::program_options::variables_map& parVarMap );
|
||||||
} //namespace din
|
} //namespace din
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue