warp_gui_app/
lib.rs

1use std::process::{exit, Command};
2
3slint::include_modules!();
4
5pub fn status_check() -> String {
6    let output = Command::new("zsh")
7        .arg("-c")
8        .arg("warp-cli status")
9        .output()
10        .expect("Status cli error");
11
12    if !output.status.success() {
13        println!("Error in accessing warp cli");
14        exit(1);
15    }
16
17    let output_str = String::from_utf8(output.stdout).unwrap();
18    let mut result: &str = "";
19    for i in output_str.split("\n") {
20        if i.contains("Status") {
21            result = i.split(":").collect::<Vec<_>>()[1].trim();
22        }
23    }
24    String::from(result)
25}
26
27pub fn toggle_connection(action: bool) {
28    let action_taken = if action { "connect" } else { "disconnect" };
29    let output = Command::new("zsh")
30        .arg("-c")
31        .arg(format!("warp-cli {}", action_taken))
32        .output()
33        .unwrap();
34
35    if !output.status.success() {
36        println!("Error in accessing warp cli");
37        exit(1);
38    }
39}