Improve a bit error handling

This commit is contained in:
Skia 2021-01-06 11:40:00 +01:00
parent 9b8a86dbe3
commit 81d3d6f2d4

View file

@ -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 {
send_msg(&stream, GET_OUTPUTS, "");
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);
println!("Sending command: '{}'", &cmd);
send_msg(&stream, RUN_COMMAND, &cmd);
match read_msg(&stream) {
Ok(msg) => println!("msg: {}", msg),
Err(_) => panic!("Unable to get current workspace"),
};
check_success(&stream);
}
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);
println!("Sending command: '{}'", &cmd);
send_msg(&stream, RUN_COMMAND, &cmd);
match read_msg(&stream) {
Ok(msg) => println!("msg: {}", msg),
Err(_) => panic!("Unable to get current workspace"),
};
check_success(&stream);
}
fn main() {