@@ 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){