~deadjakk/RiceStats

a493c266531c580a87f8f3bf21cc49b692327997 — deadjakk 2 years ago dfa8419 master
added xbps-install for updates
1 files changed, 32 insertions(+), 0 deletions(-)

M src/updates_utils.rs
M src/updates_utils.rs => src/updates_utils.rs +32 -0
@@ 17,6 17,14 @@ pub fn get_updates(output_line: &mut String) -> Result<(),RiceError> {
        return Err(RiceError::SUIDFailed);
    }

    match run_command("which xbps-install",&mut "".to_string()) {
        Ok(_) => {
            if let Err(_) = xbps_poll(output_line){
            }
            return Ok(());
        }
        Err(_) => (),
    }
    // check if apt is available (ubuntu/debian)
    match run_command("which apt",&mut "".to_string()) {
        Ok(_) => {


@@ 59,6 67,30 @@ fn pacman_poll (output_line: &mut String) -> Result<(),Box<dyn Error>> {
    }
}

fn xbps_poll (output_line: &mut String) -> Result<(),RiceError> {
    let mut command_to_parse = String::new();
    if let Err(_) = run_command("xbps-install -Suv", &mut command_to_parse){
        eprintln!("erroneous error output: {}",command_to_parse);
    }

    let mut i = 0;
    let pattern = Regex::new("Found ").unwrap();
    for _ in pattern.captures_iter(&command_to_parse){
        i+=1;
    }
    match i { 
        0 => {
            // Updates were not found
            output_line.push_str("0 Updates Available ");
            return Ok(());
        },
         _ => {
            output_line.push_str(&format!("{}",i));
            output_line.push_str(" Updates Available ");
            return Ok(());
        },
    }
}
fn apt_poll (output_line: &mut String) -> Result<(),RiceError> {
    let mut command_to_parse = String::new();
    if let Err(_) = run_command("apt update -y", &mut command_to_parse){