aboutsummaryrefslogtreecommitdiffstats
path: root/mumctl/src
diff options
context:
space:
mode:
authorGustav Sörnäs <gustav@sornas.net>2021-03-29 17:32:12 +0200
committerGitHub <noreply@github.com>2021-03-29 17:32:12 +0200
commit5ecd440aedd5c0866daec2ab3f4d710f6e7c17f0 (patch)
tree6cd27b236db89e3364ce5b3270fccd459af7571b /mumctl/src
parentc6a5774443099c747bce938e6f87299397819c2b (diff)
parent4b12f3e87ed12ed5b070f23d73f8288cd5b109fd (diff)
downloadmum-5ecd440aedd5c0866daec2ab3f4d710f6e7c17f0.tar.gz
Merge pull request #75 from rbran/main
Finish the password implementation
Diffstat (limited to 'mumctl/src')
-rw-r--r--mumctl/src/main.rs13
1 files changed, 10 insertions, 3 deletions
diff --git a/mumctl/src/main.rs b/mumctl/src/main.rs
index 9d9e4fd..45ee126 100644
--- a/mumctl/src/main.rs
+++ b/mumctl/src/main.rs
@@ -54,6 +54,7 @@ fn main() {
.about("Connect to a server")
.arg(Arg::with_name("host").required(true))
.arg(Arg::with_name("username"))
+ .arg(Arg::with_name("password"))
.arg(
Arg::with_name("port")
.long("port")
@@ -390,13 +391,14 @@ fn process_matches(matches: ArgMatches, config: &mut Config, app: &mut App) -> R
fn match_server_connect(matches: &clap::ArgMatches<'_>, config: &mumlib::config::Config) -> Result<(), Error> {
let host = matches.value_of("host").unwrap();
let username = matches.value_of("username");
+ let password = matches.value_of("password");
let port = match matches.value_of("port").map(|e| e.parse()) {
None => Some(mumlib::DEFAULT_PORT),
Some(Err(_)) => None,
Some(Ok(v)) => Some(v),
};
if let Some(port) = port {
- let (host, port, username) = match config.servers.iter().find(|e| e.name == host) {
+ let (host, port, username, password) = match config.servers.iter().find(|e| e.name == host) {
Some(server_config) => {
let host = server_config.host.as_str();
let port = server_config.port.unwrap_or(port);
@@ -408,20 +410,25 @@ fn match_server_connect(matches: &clap::ArgMatches<'_>, config: &mumlib::config:
error!("no username specified");
return Ok(()); //TODO? return as error
}
- (host, port, username.unwrap())
+ let password = server_config
+ .password
+ .as_deref()
+ .or(password);
+ (host, port, username.unwrap(), password)
}
None => {
if username.is_none() {
error!("no username specified");
return Ok(()); //TODO? return as error
}
- (host, port, username.unwrap())
+ (host, port, username.unwrap(), password)
}
};
let response = send_command(Command::ServerConnect {
host: host.to_string(),
port,
username: username.to_string(),
+ password: password.map(|x| x.to_string()),
accept_invalid_cert: true, //TODO
})?
.map(|e| (e, host));