int main(){ progress_bar_t *mybar = setup_progress('=', '[', ']',70, true); printf("\n"); for (int i=0;i<=100;i=i+1){ update_progress(((double)i)/100, mybar); usleep(200*MILLISEC); } }
bool CommandRenumber::setup(const std::vector<std::string>& arguments) { po::options_description opts_cmd{"COMMAND OPTIONS"}; opts_cmd.add_options() ("index-directory,i", po::value<std::string>(), "Index directory") ("object-type,t", po::value<std::vector<std::string>>(), "Renumber only objects of given type (node, way, relation)") ("show-index", po::value<std::string>(), "Show contents of index file") ("start-id,s", po::value<std::string>(), "Comma separated list of first node, way, and relation id to use (default: 1,1,1)") ; po::options_description opts_common{add_common_options()}; po::options_description opts_input{add_single_input_options()}; po::options_description opts_output{add_output_options()}; po::options_description hidden; hidden.add_options() ("input-filename", po::value<std::string>(), "Input file") ; po::options_description desc; desc.add(opts_cmd).add(opts_common).add(opts_input).add(opts_output); po::options_description parsed_options; parsed_options.add(desc).add(hidden); po::positional_options_description positional; positional.add("input-filename", 1); po::variables_map vm; po::store(po::command_line_parser(arguments).options(parsed_options).positional(positional).run(), vm); po::notify(vm); if (vm.count("index-directory")) { m_index_directory = vm["index-directory"].as<std::string>(); } if (vm.count("show-index")) { show_index(vm["show-index"].as<std::string>()); return false; } setup_common(vm, desc); setup_progress(vm); setup_object_type_nwr(vm); setup_input_file(vm); setup_output_file(vm); if (vm.count("start-id")) { set_start_ids(vm["start-id"].as<std::string>()); } return true; }
bool CommandCheckRefs::setup(const std::vector<std::string>& arguments) { po::options_description opts_cmd{"COMMAND OPTIONS"}; opts_cmd.add_options() ("show-ids,i", "Show IDs of missing objects") ("check-relations,r", "Also check relations") ; po::options_description opts_common{add_common_options()}; po::options_description opts_input{add_single_input_options()}; po::options_description hidden; hidden.add_options() ("input-filename", po::value<std::string>(), "Input file") ; po::options_description desc; desc.add(opts_cmd).add(opts_common).add(opts_input); po::options_description parsed_options; parsed_options.add(desc).add(hidden); po::positional_options_description positional; positional.add("input-filename", 1); po::variables_map vm; po::store(po::command_line_parser(arguments).options(parsed_options).positional(positional).run(), vm); po::notify(vm); setup_common(vm, desc); setup_progress(vm); setup_input_file(vm); if (vm.count("show-ids")) { m_show_ids = true; } if (vm.count("check-relations")) { m_check_relations = true; } return true; }
bool CommandSort::setup(const std::vector<std::string>& arguments) { po::options_description opts_common{add_common_options()}; po::options_description opts_input{add_multiple_inputs_options()}; po::options_description opts_output{add_output_options()}; po::options_description hidden; hidden.add_options() ("input-filenames", po::value<std::vector<std::string>>(), "OSM input files") ("strategy,s", po::value<std::string>(), "Strategy (default: simple)") ; po::options_description desc; desc.add(opts_common).add(opts_input).add(opts_output); po::options_description parsed_options; parsed_options.add(desc).add(hidden); po::positional_options_description positional; positional.add("input-filenames", -1); po::variables_map vm; po::store(po::command_line_parser(arguments).options(parsed_options).positional(positional).run(), vm); po::notify(vm); setup_common(vm, desc); setup_progress(vm); setup_input_files(vm); setup_output_file(vm); if (vm.count("input-filenames")) { m_filenames = vm["input-filenames"].as<std::vector<std::string>>(); } if (vm.count("strategy")) { m_strategy = vm["strategy"].as<std::string>(); if (m_strategy != "simple" && m_strategy != "multipass") { throw argument_error{"Unknown strategy: " + m_strategy}; } } return true; }
bool CommandGetParents::setup(const std::vector<std::string>& arguments) { po::options_description opts_cmd{"COMMAND OPTIONS"}; opts_cmd.add_options() ("default-type", po::value<std::string>()->default_value("node"), "Default item type") ("id-file,i", po::value<std::vector<std::string>>(), "Read OSM IDs from text file") ("id-osm-file,I", po::value<std::vector<std::string>>(), "Read OSM IDs from OSM file") ("add-self,s", "Add objects with specified IDs themselves") ("verbose-ids", "Print all requested IDs") ; po::options_description opts_common{add_common_options()}; po::options_description opts_input{add_single_input_options()}; po::options_description opts_output{add_output_options()}; po::options_description hidden; hidden.add_options() ("input-filename", po::value<std::string>(), "OSM input file") ("ids", po::value<std::vector<std::string>>(), "OSM IDs") ; po::options_description desc; desc.add(opts_cmd).add(opts_common).add(opts_input).add(opts_output); po::options_description parsed_options; parsed_options.add(desc).add(hidden); po::positional_options_description positional; positional.add("input-filename", 1); positional.add("ids", -1); po::variables_map vm; po::store(po::command_line_parser(arguments).options(parsed_options).positional(positional).run(), vm); po::notify(vm); setup_common(vm, desc); setup_progress(vm); setup_input_file(vm); setup_output_file(vm); if (vm.count("add-self")) { m_add_self = true; } if (vm.count("default-type")) { m_default_item_type = parse_item_type(vm["default-type"].as<std::string>()); } if (vm.count("verbose-ids")) { m_vout.verbose(true); m_verbose_ids = true; } if (vm.count("id-file")) { for (const std::string& filename : vm["id-file"].as<std::vector<std::string>>()) { if (filename == "-") { if (m_input_filename.empty() || m_input_filename == "-") { throw argument_error{"Can not read OSM input and IDs both from STDIN."}; } m_vout << "Reading IDs from STDIN...\n"; read_id_file(std::cin, m_ids, m_default_item_type); } else { std::ifstream id_file{filename}; if (!id_file.is_open()) { throw argument_error{"Could not open file '" + filename + "'"}; } m_vout << "Reading ID file...\n"; read_id_file(id_file, m_ids, m_default_item_type); } } } if (vm.count("id-osm-file")) { for (const std::string& filename : vm["id-osm-file"].as<std::vector<std::string>>()) { m_vout << "Reading OSM ID file...\n"; read_id_osm_file(filename, m_ids); } } if (vm.count("ids")) { std::string sids; for (const auto& s : vm["ids"].as<std::vector<std::string>>()) { sids += s + " "; } for (const auto& s : osmium::split_string(sids, "\t ;,/|", true)) { parse_and_add_id(s, m_ids, m_default_item_type); } } if (no_ids(m_ids)) { throw argument_error{"Please specify IDs to look for on command line or with option --id-file/-i or --id-osm-file/-I."}; } return true; }