void CommandLineHandlerBase::apply(SuperLogger& logger) { if (impl->m_version.is_set()) print_version_information(logger); if (impl->m_system.is_set()) System::print_information(logger); if (impl->m_display_options.is_set()) { LOG_INFO(logger, "recognized options:"); impl->m_parser.print_recognized_options(logger); } impl->m_parse_results.m_messages.print(logger); if (impl->m_parse_results.m_errors > 0 || impl->m_parse_results.m_warnings > 0) { LOG( logger, impl->m_parse_results.m_errors > 0 ? LogMessage::Fatal : LogMessage::Warning, FMT_SIZE_T " error%s, " FMT_SIZE_T " warning%s encountered while parsing the command line.", impl->m_parse_results.m_errors, impl->m_parse_results.m_errors > 1 ? "s" : "", impl->m_parse_results.m_warnings, impl->m_parse_results.m_warnings > 1 ? "s" : ""); } }
void CommandLineHandlerBase::parse( const int argc, const char* argv[], SuperLogger& logger) { ParseResults results; impl->m_parser.parse(argc, argv, results); if (impl->m_message_coloring.is_set()) logger.enable_message_coloring(); if (impl->m_message_verbosity.is_set()) set_verbosity(logger, impl->m_message_verbosity.value()); if (impl->m_version.is_set()) print_version_information(logger); if (impl->m_system.is_set()) print_system_information(logger); if (impl->m_help.is_set()) { const string program_name = filesystem::path(argv[0]).filename().string(); print_program_usage(program_name.c_str(), logger); exit(0); } if (impl->m_display_options.is_set()) { LOG_INFO(logger, "recognized options:"); impl->m_parser.print_recognized_options(logger); } results.m_messages.print(logger); if (results.m_errors > 0 || results.m_warnings > 0) { LOG( logger, results.m_errors > 0 ? LogMessage::Fatal : LogMessage::Warning, FMT_SIZE_T " error%s, " FMT_SIZE_T " warning%s encountered while parsing the command line.", results.m_errors, results.m_errors > 1 ? "s" : "", results.m_warnings, results.m_warnings > 1 ? "s" : ""); } }