82 if (arguments.
peek(
"memory"))
84 else if (arguments.
peek(
"server"))
87 else if (arguments.
peek(
"sftp"))
89 const auto port = arguments.
next_option<
unsigned>(
"port",
"p", 22);
90 const auto verbosity = arguments.
next_option<
int>(
"verbosity",
"v", 0);
91 const std::string_view user = arguments.
get_next();
92 const std::string_view host = arguments.
get_next();
93 const std::string_view path = arguments.
get_next();
98 out <<
"Creating ssh Session... ";
100 ssh_session.emplace(user.data(), host.data(), port, verbosity);
102 out <<
"OK\nInitializing sftp... ";
104 sftp.emplace(*ssh_session);
106 out <<
"OK\nOpening file... ";
108 file.reset(
new SFTP_File(*sftp, path.data()));
114 else if (arguments.
peek(
"curl"))
116 const bool verbose = arguments.
peek(
"--verbose");
117 const std::string_view url = arguments.
get_next();
122 file.reset(
new CURL_File(url.data(), verbose));
125#ifdef JOEDB_HAS_BROTLI
126 else if (arguments.
peek(
"brotli"))
128 bool readonly =
false;
132 else if (arguments.
peek(
"--read"))
135 const std::string_view file_name = arguments.
get_next();
140 out <<
"Opening brotli file... ";
153 const bool interpreted = arguments.
peek(
"interpreted");
154 arguments.
peek(
"file");
160 for (
size_t i = 0; i < open_modes; i++)
166 if (arguments.
peek(option.data()))
171 const std::string_view file_name = arguments.
get_next();
176 out <<
"Opening local file (open_mode = ";
183 file.reset(
new File(file_name.data(), open_mode));