int main(int argc, char *argv[]) { boost::program_options::options_description options_description("Builder usage"); options_description.add_options() ("help", "Display this message") ("version", "Displays version number") ("input-path,i", boost::program_options::value<std::string>(), "Path to directory with sources") ("output-path,o", boost::program_options::value<std::string>(), "Path to output directory (repository)") ("extension-path,e", boost::program_options::value<std::string>(), "Path to extensions directory") ("clear-output,c", "Clear output directory (repository) before build") ("settings,s", boost::program_options::value<std::string>(), "Path to configuration file for sc-memory") ("auto-formats,f", "Enable automatic formats info generation") ("show-filenames,v", "Enable processing filnames printing"); boost::program_options::variables_map vm; boost::program_options::store(boost::program_options::command_line_parser(argc, argv).options(options_description).run(), vm); boost::program_options::notify(vm); if (vm.count("help") || !vm.count("input-path") || !vm.count("output-path")) { std::cout << options_description; return 0; } BuilderParams params; params.clearOutput = false; params.autoFormatInfo = false; if (vm.count("input-path")) params.inputPath = vm["input-path"].as<std::string>(); if (vm.count("output-path")) params.outputPath = vm["output-path"].as<std::string>(); if (vm.count("extension-path")) params.extensionsPath = vm["extension-path"].as<std::string>(); if (vm.count("clear-output")) params.clearOutput = true; if (vm.count("auto-formats")) params.autoFormatInfo = true; if (vm.count("settings")) params.configFile = vm["settings"].as<std::string>(); if (vm.count("show-filenames")) params.showFileNames = true; Builder builder; builder.initialize(); builder.run(params); return builder.hasErrors() ? EXIT_SUCCESS : EXIT_FAILURE; }
void parse_mdstore_config_() { po::variables_map vm; auto opt = ::youtils::get_option<volumedriver::MetaDataBackendType, volumedrivertest::metadata_options_t>(mdstore_type_); parse_unparsed_options(opt->options_description(), yt::AllowUnregisteredOptions::T, vm); opt->actions(); }
int main(int argc, char* argv[]) { namespace po = boost::program_options; try { po::options_description options_description("Options"); options_description.add_options() ("help,h", "Output this help") ("dailysst-file", po::value<std::string>(), "DAILYSST file") ("output-file,o", po::value<std::string>(), "Output file") ("verbose,v", "Verbose level"); po::positional_options_description positional_options_description; positional_options_description.add("dailysst-file", 1); positional_options_description.add("output-file", 1); po::variables_map variables_map; po::store( po::command_line_parser(argc, argv) .options(options_description) .positional(positional_options_description) .run(), variables_map); po::notify(variables_map); if (variables_map.count("help")) { std::cout << "Usage:\n" << " " << argv[0] << " DAILYSST_FILE -o OUTPUT_FILE\n" << "\n" << options_description; return 0; } application app( variables_map["dailysst-file"].as<std::string>(), variables_map["output-file"].as<std::string>(), variables_map.count("verbose") > 0 ? &std::cout : 0); app.run(); return 0; } catch (std::exception const& e) { std::cerr << e.what() << "\n"; } return 1; }