Improve a bit error handling
This commit is contained in:
parent
9b8a86dbe3
commit
81d3d6f2d4
1 changed files with 15 additions and 8 deletions
23
src/main.rs
23
src/main.rs
|
|
@ -129,6 +129,19 @@ fn read_msg(mut stream: &UnixStream) -> Result<String, &str> {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn check_success(stream: &UnixStream) {
|
||||||
|
match read_msg(&stream) {
|
||||||
|
Ok(msg) => {
|
||||||
|
let r: Vec<serde_json::Value> = serde_json::from_str(&msg).unwrap();
|
||||||
|
match r[0]["success"] {
|
||||||
|
serde_json::Value::Bool(true) => println!("Command successful"),
|
||||||
|
_ => panic!("Command failed: {:#?}", r),
|
||||||
|
}
|
||||||
|
},
|
||||||
|
Err(_) => panic!("Unable to read response"),
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
fn get_current_output_name(stream: &UnixStream) -> String {
|
fn get_current_output_name(stream: &UnixStream) -> String {
|
||||||
send_msg(&stream, GET_OUTPUTS, "");
|
send_msg(&stream, GET_OUTPUTS, "");
|
||||||
let o = match read_msg(&stream) {
|
let o = match read_msg(&stream) {
|
||||||
|
|
@ -169,10 +182,7 @@ fn move_container_to_workspace(stream: &UnixStream, workspace_name: &String) {
|
||||||
cmd.push_str(&workspace_name);
|
cmd.push_str(&workspace_name);
|
||||||
println!("Sending command: '{}'", &cmd);
|
println!("Sending command: '{}'", &cmd);
|
||||||
send_msg(&stream, RUN_COMMAND, &cmd);
|
send_msg(&stream, RUN_COMMAND, &cmd);
|
||||||
match read_msg(&stream) {
|
check_success(&stream);
|
||||||
Ok(msg) => println!("msg: {}", msg),
|
|
||||||
Err(_) => panic!("Unable to get current workspace"),
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fn focus_to_workspace(stream: &UnixStream, workspace_name: &String) {
|
fn focus_to_workspace(stream: &UnixStream, workspace_name: &String) {
|
||||||
|
|
@ -182,10 +192,7 @@ fn focus_to_workspace(stream: &UnixStream, workspace_name: &String) {
|
||||||
cmd.push_str(&workspace_name);
|
cmd.push_str(&workspace_name);
|
||||||
println!("Sending command: '{}'", &cmd);
|
println!("Sending command: '{}'", &cmd);
|
||||||
send_msg(&stream, RUN_COMMAND, &cmd);
|
send_msg(&stream, RUN_COMMAND, &cmd);
|
||||||
match read_msg(&stream) {
|
check_success(&stream);
|
||||||
Ok(msg) => println!("msg: {}", msg),
|
|
||||||
Err(_) => panic!("Unable to get current workspace"),
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue