diff --git a/include/util/ini_file.hpp b/include/util/ini_file.hpp deleted file mode 100644 index 64c793277..000000000 --- a/include/util/ini_file.hpp +++ /dev/null @@ -1,28 +0,0 @@ -#ifndef INI_FILE_HPP -#define INI_FILE_HPP - -#include -#include - -#include -#include - -namespace osrm -{ -namespace util -{ - -// support old capitalized option names by down-casing them with a regex replace -inline std::string read_file_lower_content(const boost::filesystem::path &path) -{ - boost::filesystem::fstream config_stream(path); - std::string ini_file_content((std::istreambuf_iterator(config_stream)), - std::istreambuf_iterator()); - std::transform(std::begin(ini_file_content), std::end(ini_file_content), - std::begin(ini_file_content), ::tolower); - return ini_file_content; -} -} -} - -#endif // INI_FILE_HPP diff --git a/include/util/routed_options.hpp b/include/util/routed_options.hpp index c0b83b45b..0a23bdd2f 100644 --- a/include/util/routed_options.hpp +++ b/include/util/routed_options.hpp @@ -1,13 +1,15 @@ #ifndef ROUTED_OPTIONS_HPP #define ROUTED_OPTIONS_HPP -#include "util/ini_file.hpp" #include "util/version.hpp" #include "util/exception.hpp" #include "util/simple_logger.hpp" #include #include +#include +#include +#include #include #include @@ -139,8 +141,7 @@ GenerateServerProgramOptions(const int argc, "Path to a configuration file") // ("trial", value(&trial)->implicit_value(true), "Quit after initialization"); - // declare a group of options that will be allowed both on command line - // as well as in a config file + // declare a group of options that will be allowed on command line boost::program_options::options_description config_options("Configuration"); config_options.add_options() // ("hsgrdata", value(&paths["hsgrdata"]), ".hsgr file") // @@ -172,8 +173,7 @@ GenerateServerProgramOptions(const int argc, ("max-matching-size", value(&max_locations_map_matching)->default_value(100), "Max. locations supported in map matching query"); - // hidden options, will be allowed both on command line and in config - // file, but will not be shown to the user + // hidden options, will be allowed on command line, but will not be shown to the user boost::program_options::options_description hidden_options("Hidden options"); hidden_options.add_options()("base,b", value(&paths["base"]), "base path to .osrm file"); @@ -186,9 +186,6 @@ GenerateServerProgramOptions(const int argc, boost::program_options::options_description cmdline_options; cmdline_options.add(generic_options).add(config_options).add(hidden_options); - boost::program_options::options_description config_file_options; - config_file_options.add(config_options).add(hidden_options); - boost::program_options::options_description visible_options( boost::filesystem::basename(argv[0]) + " []"); visible_options.add(generic_options).add(config_options); @@ -215,20 +212,6 @@ GenerateServerProgramOptions(const int argc, boost::program_options::notify(option_variables); - // parse config file - auto path_iterator = paths.find("config"); - if (path_iterator != paths.end() && boost::filesystem::is_regular_file(path_iterator->second) && - !option_variables.count("base")) - { - SimpleLogger().Write() << "Reading options from: " << path_iterator->second.string(); - std::string ini_file_contents = read_file_lower_content(path_iterator->second); - std::stringstream config_stream(ini_file_contents); - boost::program_options::store(parse_config_file(config_stream, config_file_options), - option_variables); - boost::program_options::notify(option_variables); - return INIT_OK_START_ENGINE; - } - if (1 > requested_num_threads) { throw exception("Number of threads must be a positive number"); diff --git a/src/tools/contract.cpp b/src/tools/contract.cpp index a5253decf..cafb26d45 100644 --- a/src/tools/contract.cpp +++ b/src/tools/contract.cpp @@ -28,13 +28,9 @@ parseArguments(int argc, char *argv[], contractor::ContractorConfig &contractor_ { // declare a group of options that will be allowed only on command line boost::program_options::options_description generic_options("Options"); - generic_options.add_options()("version,v", "Show version")("help,h", "Show this help message")( - "config,c", - boost::program_options::value(&contractor_config.config_file_path) - ->default_value("contractor.ini"), - "Path to a configuration file."); + generic_options.add_options()("version,v", "Show version")("help,h", "Show this help message"); - // declare a group of options that will be allowed both on command line and in config file + // declare a group of options that will be allowed on command line boost::program_options::options_description config_options("Configuration"); config_options.add_options()( "profile,p", @@ -62,8 +58,7 @@ parseArguments(int argc, char *argv[], contractor::ContractorConfig &contractor_ "Write out edge-weight debugging geometry data in GeoJSON format to this file"); #endif - // hidden options, will be allowed both on command line and in config file, but will not be - // shown to the user + // hidden options, will be allowed on command line, but will not be shown to the user boost::program_options::options_description hidden_options("Hidden options"); hidden_options.add_options()("input,i", boost::program_options::value( &contractor_config.osrm_input_path), @@ -77,9 +72,6 @@ parseArguments(int argc, char *argv[], contractor::ContractorConfig &contractor_ boost::program_options::options_description cmdline_options; cmdline_options.add(generic_options).add(config_options).add(hidden_options); - boost::program_options::options_description config_file_options; - config_file_options.add(config_options).add(hidden_options); - boost::program_options::options_description visible_options( "Usage: " + boost::filesystem::basename(argv[0]) + " [options]"); visible_options.add(generic_options).add(config_options); @@ -92,14 +84,6 @@ parseArguments(int argc, char *argv[], contractor::ContractorConfig &contractor_ .run(), option_variables); - const auto &temp_config_path = option_variables["config"].as(); - if (boost::filesystem::is_regular_file(temp_config_path)) - { - boost::program_options::store(boost::program_options::parse_config_file( - temp_config_path.string().c_str(), cmdline_options, true), - option_variables); - } - if (option_variables.count("version")) { util::SimpleLogger().Write() << OSRM_VERSION; diff --git a/src/tools/extract.cpp b/src/tools/extract.cpp index 4550cff4f..0782b0430 100644 --- a/src/tools/extract.cpp +++ b/src/tools/extract.cpp @@ -1,7 +1,6 @@ #include "extractor/extractor.hpp" #include "extractor/extractor_config.hpp" #include "util/simple_logger.hpp" -#include "util/ini_file.hpp" #include "util/version.hpp" #include @@ -27,13 +26,9 @@ parseArguments(int argc, char *argv[], extractor::ExtractorConfig &extractor_con { // declare a group of options that will be allowed only on command line boost::program_options::options_description generic_options("Options"); - generic_options.add_options()("version,v", "Show version")("help,h", "Show this help message")( - "config,c", - boost::program_options::value(&extractor_config.config_file_path) - ->default_value("extractor.ini"), - "Path to a configuration file."); + generic_options.add_options()("version,v", "Show version")("help,h", "Show this help message"); - // declare a group of options that will be allowed both on command line and in config file + // declare a group of options that will be allowed both on command line boost::program_options::options_description config_options("Configuration"); config_options.add_options()( "profile,p", @@ -61,7 +56,7 @@ parseArguments(int argc, char *argv[], extractor::ExtractorConfig &extractor_con "Write out GeoJSON with turn penalty data"); #endif // DEBUG_GEOMETRY - // hidden options, will be allowed both on command line and in config file, but will not be + // hidden options, will be allowed on command line, but will not be // shown to the user boost::program_options::options_description hidden_options("Hidden options"); hidden_options.add_options()("input,i", boost::program_options::value( @@ -76,9 +71,6 @@ parseArguments(int argc, char *argv[], extractor::ExtractorConfig &extractor_con boost::program_options::options_description cmdline_options; cmdline_options.add(generic_options).add(config_options).add(hidden_options); - boost::program_options::options_description config_file_options; - config_file_options.add(config_options).add(hidden_options); - boost::program_options::options_description visible_options( boost::filesystem::basename(argv[0]) + " [options]"); visible_options.add(generic_options).add(config_options); @@ -106,19 +98,6 @@ parseArguments(int argc, char *argv[], extractor::ExtractorConfig &extractor_con boost::program_options::notify(option_variables); - // parse config file - if (boost::filesystem::is_regular_file(extractor_config.config_file_path)) - { - util::SimpleLogger().Write() << "Reading options from: " - << extractor_config.config_file_path.string(); - std::string ini_file_contents = - util::read_file_lower_content(extractor_config.config_file_path); - std::stringstream config_stream(ini_file_contents); - boost::program_options::store(parse_config_file(config_stream, config_file_options), - option_variables); - boost::program_options::notify(option_variables); - } - if (!option_variables.count("input")) { util::SimpleLogger().Write() << visible_options; diff --git a/src/tools/routed.cpp b/src/tools/routed.cpp index 81f8eb6aa..960607af1 100644 --- a/src/tools/routed.cpp +++ b/src/tools/routed.cpp @@ -1,5 +1,4 @@ #include "server/server.hpp" -#include "util/ini_file.hpp" #include "util/routed_options.hpp" #include "util/simple_logger.hpp" diff --git a/src/tools/store.cpp b/src/tools/store.cpp index a1dc17c4a..51bc03f38 100644 --- a/src/tools/store.cpp +++ b/src/tools/store.cpp @@ -2,10 +2,9 @@ #include "util/exception.hpp" #include "util/simple_logger.hpp" #include "util/typedefs.hpp" -#include "util/ini_file.hpp" #include "util/version.hpp" -#include +#include #include using namespace osrm; @@ -18,10 +17,7 @@ bool generateDataStoreOptions(const int argc, // declare a group of options that will be allowed only on command line boost::program_options::options_description generic_options("Options"); generic_options.add_options()("version,v", "Show version")("help,h", "Show this help message")( - "springclean,s", "Remove all regions in shared memory")( - "config,c", boost::program_options::value(&paths["config"]) - ->default_value("server.ini"), - "Path to a configuration file"); + "springclean,s", "Remove all regions in shared memory"); // declare a group of options that will be allowed both on command line // as well as in a config file @@ -46,8 +42,7 @@ bool generateDataStoreOptions(const int argc, boost::program_options::value(&paths["timestamp"]), ".timestamp file"); - // hidden options, will be allowed both on command line and in config - // file, but will not be shown to the user + // hidden options, will be allowed on command line but will not be shown to the user boost::program_options::options_description hidden_options("Hidden options"); hidden_options.add_options()( "base,b", boost::program_options::value(&paths["base"]), @@ -61,9 +56,6 @@ bool generateDataStoreOptions(const int argc, boost::program_options::options_description cmdline_options; cmdline_options.add(generic_options).add(config_options).add(hidden_options); - boost::program_options::options_description config_file_options; - config_file_options.add(config_options).add(hidden_options); - boost::program_options::options_description visible_options( boost::filesystem::basename(argv[0]) + " [] "); visible_options.add(generic_options).add(config_options); @@ -97,106 +89,62 @@ bool generateDataStoreOptions(const int argc, boost::program_options::notify(option_variables); - const bool parameter_present = - (paths.find("hsgrdata") != paths.end() && - !paths.find("hsgrdata")->second.string().empty()) || - (paths.find("nodesdata") != paths.end() && - !paths.find("nodesdata")->second.string().empty()) || - (paths.find("edgesdata") != paths.end() && - !paths.find("edgesdata")->second.string().empty()) || - (paths.find("geometry") != paths.end() && - !paths.find("geometry")->second.string().empty()) || - (paths.find("ramindex") != paths.end() && - !paths.find("ramindex")->second.string().empty()) || - (paths.find("fileindex") != paths.end() && - !paths.find("fileindex")->second.string().empty()) || - (paths.find("core") != paths.end() && !paths.find("core")->second.string().empty()) || - (paths.find("timestamp") != paths.end() && - !paths.find("timestamp")->second.string().empty()); + auto path_iterator = paths.find("base"); + BOOST_ASSERT(paths.end() != path_iterator); + std::string base_string = path_iterator->second.string(); - if (parameter_present) + path_iterator = paths.find("hsgrdata"); + if (path_iterator != paths.end()) { - if ((paths.find("config") != paths.end() && - boost::filesystem::is_regular_file(paths.find("config")->second)) || - option_variables.count("base")) - { - util::SimpleLogger().Write(logWARNING) << "conflicting parameters"; - util::SimpleLogger().Write() << visible_options; - return false; - } + path_iterator->second = base_string + ".hsgr"; } - // parse config file - auto path_iterator = paths.find("config"); - if (path_iterator != paths.end() && boost::filesystem::is_regular_file(path_iterator->second) && - !option_variables.count("base")) + path_iterator = paths.find("nodesdata"); + if (path_iterator != paths.end()) { - util::SimpleLogger().Write() << "Reading options from: " << path_iterator->second.string(); - std::string ini_file_contents = util::read_file_lower_content(path_iterator->second); - std::stringstream config_stream(ini_file_contents); - boost::program_options::store(parse_config_file(config_stream, config_file_options), - option_variables); - boost::program_options::notify(option_variables); + path_iterator->second = base_string + ".nodes"; } - else if (option_variables.count("base")) + + path_iterator = paths.find("edgesdata"); + if (path_iterator != paths.end()) { - path_iterator = paths.find("base"); - BOOST_ASSERT(paths.end() != path_iterator); - std::string base_string = path_iterator->second.string(); + path_iterator->second = base_string + ".edges"; + } - path_iterator = paths.find("hsgrdata"); - if (path_iterator != paths.end()) - { - path_iterator->second = base_string + ".hsgr"; - } + path_iterator = paths.find("geometry"); + if (path_iterator != paths.end()) + { + path_iterator->second = base_string + ".geometry"; + } - path_iterator = paths.find("nodesdata"); - if (path_iterator != paths.end()) - { - path_iterator->second = base_string + ".nodes"; - } + path_iterator = paths.find("ramindex"); + if (path_iterator != paths.end()) + { + path_iterator->second = base_string + ".ramIndex"; + } - path_iterator = paths.find("edgesdata"); - if (path_iterator != paths.end()) - { - path_iterator->second = base_string + ".edges"; - } + path_iterator = paths.find("fileindex"); + if (path_iterator != paths.end()) + { + path_iterator->second = base_string + ".fileIndex"; + } - path_iterator = paths.find("geometry"); - if (path_iterator != paths.end()) - { - path_iterator->second = base_string + ".geometry"; - } + path_iterator = paths.find("core"); + if (path_iterator != paths.end()) + { + path_iterator->second = base_string + ".core"; + } - path_iterator = paths.find("ramindex"); - if (path_iterator != paths.end()) - { - path_iterator->second = base_string + ".ramIndex"; - } + path_iterator = paths.find("namesdata"); + if (path_iterator != paths.end()) + { + path_iterator->second = base_string + ".names"; + } - path_iterator = paths.find("fileindex"); - if (path_iterator != paths.end()) - { - path_iterator->second = base_string + ".fileIndex"; - } - - path_iterator = paths.find("core"); - if (path_iterator != paths.end()) - { - path_iterator->second = base_string + ".core"; - } - - path_iterator = paths.find("namesdata"); - if (path_iterator != paths.end()) - { - path_iterator->second = base_string + ".names"; - } - - path_iterator = paths.find("timestamp"); - if (path_iterator != paths.end()) - { - path_iterator->second = base_string + ".timestamp"; - } + path_iterator = paths.find("timestamp"); + if (path_iterator != paths.end()) + { + path_iterator->second = base_string + ".timestamp"; } path_iterator = paths.find("hsgrdata");