mirror of
https://github.com/KingDuckZ/dindexer.git
synced 2025-02-17 11:45:50 +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 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) {
|
||||
po::options_description set_options(ACTION_NAME " options");
|
||||
//set_options.add_options()
|
||||
|
@ -44,8 +54,8 @@ namespace din {
|
|||
try {
|
||||
po::store(po::command_line_parser(parArgc, parArgv).options(all)/*.positional(pd)*/.run(), parVarMap);
|
||||
}
|
||||
catch (const po::unknown_option& err) {
|
||||
throw std::invalid_argument(err.what());
|
||||
catch (const po::validation_error& err) {
|
||||
throw ValidationError(err);
|
||||
}
|
||||
|
||||
po::notify(parVarMap);
|
||||
|
|
|
@ -23,6 +23,14 @@
|
|||
#include "dindexer-common/mediatypes.hpp"
|
||||
|
||||
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 );
|
||||
} //namespace din
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue