1#ifndef joedb_SSH_Connection_Builder
2#define joedb_SSH_Connection_Builder
13 const char *
get_name()
const override {
return "ssh";}
16 return "[--port p] [--verbosity v] [--key base64] [--passphrase secret] <user> <host> <path>";
21 const auto port = arguments.
next_option<
unsigned>(
"port",
"p", 22);
22 const auto verbosity = arguments.
next_option<
int>(
"verbosity",
"v", 0);
23 const auto key = arguments.
next_option<beman::cstring_view>(
"key",
"base64",
"");
24 const auto passphrase = arguments.
next_option<beman::cstring_view>(
"passphrase",
"secret",
"");
26 const beman::cstring_view user = arguments.
get_next(
"user");
27 const beman::cstring_view host = arguments.
get_next(
"host");
28 const beman::cstring_view path = arguments.
get_next(
"path");
33 connector = std::make_unique<ssh::Connector>
40 std::string(passphrase),
Class for conveniently parsing command-line arguments.
T next_option(const char *name, const char *description, T default_value)
beman::cstring_view get_next()
const char * get_name() const override
void build_connector(Arguments &arguments) override
std::string get_connection_parameters() const override
std::unique_ptr< Connector > connector