12 if (i >= argc || std::string(argv[i]) !=
"--download-missing") {
16 download_missing =
true;
23 if (i >= argc || std::string(argv[i]) !=
"--database-dir") {
28 throw std::runtime_error(
"Option --database-dir expects an arguments, but none is given.");
31 database_dir = argv[i];
32 if (!std::filesystem::exists(database_dir)) {
36 database_dir = std::filesystem::canonical(database_dir);
37 if (!std::filesystem::is_directory(database_dir)) {
38 throw std::filesystem::filesystem_error(
"Cannot access database", database_dir.string(),
39 std::make_error_code(std::errc::not_a_directory));
46 if (i >= argc || std::string(argv[i]) !=
"--data-dir") {
51 throw std::runtime_error(
"Option --data-dir expects an arguments, but none is given.");
55 if (!std::filesystem::exists(data_dir)) {
59 data_dir = std::filesystem::canonical(data_dir);
60 if (!std::filesystem::is_directory(data_dir)) {
61 throw std::filesystem::filesystem_error(
"Cannot access data directory", data_dir.string(),
62 std::make_error_code(std::errc::not_a_directory));
bool parse_data_dir(int &i, int argc, char **const argv, std::filesystem::path &data_dir)
bool parse_database_dir(int &i, int argc, char **const argv, std::filesystem::path &database_dir)
bool parse_download_missing(int &i, int argc, char **const argv, bool &download_missing)