2 #include <boost/program_options.hpp> 28 namespace CmdInterface
31 namespace Poptions = boost::program_options;
37 FileSuffixes::FileSuffixes(
const std::vector<std::string> &
suffixes) : _suffixes()
39 std::transform(suffixes.begin(), suffixes.end(), std::inserter(
_suffixes,
_suffixes.end()),
40 [&](
const std::string & suffix)
42 return std::make_pair(suffix, std::regex(
_fileBase + suffix));
55 const std::string & suffix)
const 62 return std::regex_match(fileName, it->second);
73 printUsage(
const string & programName, Poptions::options_description & desc)
75 std::cout <<
"Usage: " << programName <<
"\n" << desc <<
"\n";
88 cout << description << endl;
100 cout <<
"Error: " << msg <<
'\n';
112 cout <<
"Error: " << msg <<
'\n';
130 vector<string> extensions;
131 extensions.push_back(suffix);
147 string::size_type idx = name.rfind(
'.');
148 if(idx == string::npos)
152 return name.substr(idx + 1);
size_t printUsage(const string &programName, Poptions::options_description &desc)
Some utilities to deal with the command line.
InputIterator getFileExtension(const std::basic_string< CharType, CharTraits > &fileName, InputIterator begin, InputIterator end)
std::unordered_map< std::string, std::regex > _suffixes
size_t printCommandLineError(const string &msg)
const size_t ERROR_IN_COMMAND_LINE
bool match(const std::string &fileName, const std::string &suffix) const
string getSuffix(const string &name)
const size_t WARNING_IN_COMMAND_LINE
bool fileSuffixOk(const string &modelFile, const string &suffix)
Namespace of the Diades project.
size_t printCommandLineWarning(const string &msg)
FileSuffixes suffixes({"aut","ddaut"})