diff --git a/osupdater/src/main.rs b/osupdater/src/main.rs index acb91a0..654c0a6 100644 --- a/osupdater/src/main.rs +++ b/osupdater/src/main.rs @@ -13,20 +13,22 @@ fn trim_newline(s: &mut String) { fn main() { { + //Clear termianl, and move cursor to 1,1 inside the terminal + print!("{esc}[2J{esc}[1;1H", esc = 27 as char); + // Tell user that we are going to start the update procedure - cprintln!("osupdater : rust edition\n"); - cprintln!("This tool will locate any package managers on your system and run the update tool appropriate to it.\n"); - cprintln!("Looking for native package managers.\n"); + cprintln!("osupdater : rust edition -- This tool will locate and run any package managers on your system.\n"); + cprintln!("Looking for native package managers.\n"); let find_sudo = Command::new("which") .arg("sudo").stdout(Stdio::piped()).output().unwrap(); let mut sudo_bin = String::from_utf8(find_sudo.stdout).unwrap(); trim_newline(&mut sudo_bin); - + let find_apt = Command::new("which") .arg("apt").stdout(Stdio::piped()).output().unwrap(); let mut apt_bin = String::from_utf8(find_apt.stdout).unwrap(); trim_newline(&mut apt_bin); - + let find_dnf5 = Command::new("which") .arg("dnf5").stdout(Stdio::piped()).output().unwrap(); let mut dnf5_bin = String::from_utf8(find_dnf5.stdout).unwrap(); @@ -46,12 +48,12 @@ fn main() { .arg("urpmi").stdout(Stdio::piped()).output().unwrap(); let mut urpmi_bin = String::from_utf8(find_urpmi.stdout).unwrap(); trim_newline(&mut urpmi_bin); - + let find_zypper = Command::new("which") .arg("zypper").stdout(Stdio::piped()).output().unwrap(); let mut zypper_bin = String::from_utf8(find_zypper.stdout).unwrap(); trim_newline(&mut zypper_bin); - + let find_flatpak = Command::new("which") .arg("flatpak").stdout(Stdio::piped()).output().unwrap(); let mut flatpak_bin = String::from_utf8(find_flatpak.stdout).unwrap(); @@ -60,36 +62,36 @@ fn main() { let find_snap = Command::new("which") .arg("snap").stdout(Stdio::piped()).output().unwrap(); let mut snap_bin = String::from_utf8(find_snap.stdout).unwrap(); - trim_newline(&mut snap_bin); - + trim_newline(&mut snap_bin); + let find_pip_review = Command::new("which") .arg("pip-review").stdout(Stdio::piped()).output().unwrap(); - let mut pip_review_bin = String::from_utf8(find_pip_review.stdout).unwrap(); + let mut pip_review_bin = String::from_utf8(find_pip_review.stdout).unwrap(); trim_newline(&mut pip_review_bin); - + //apt - cprintln!("Checking for apt"); let path = Path::new(&apt_bin); if path.exists(){ - let mut cmd = + cprintln!("Updating via: apt"); + let mut cmd = Command::new(&sudo_bin) .arg(&apt_bin).arg("update").arg("-y") .stdout(Stdio::inherit()).stderr(Stdio::inherit()) .spawn().unwrap(); let _output = cmd.wait(); - let mut cmd = + let mut cmd = Command::new(&sudo_bin) .arg(&apt_bin).arg("upgrade").arg("-y") .stdout(Stdio::inherit()).stderr(Stdio::inherit()) .spawn().unwrap(); let _output = cmd.wait(); } - + // dnf - cprintln!("Checking for dnf"); let path = Path::new(&dnf_bin); if path.exists(){ - let mut cmd = + cprintln!("Updating via: dnf"); + let mut cmd = Command::new(&sudo_bin) .arg(&dnf_bin).arg("--refresh").arg("--skip-broken").arg("--nobest").arg("-y").arg("update") .stdout(Stdio::inherit()).stderr(Stdio::inherit()) @@ -98,9 +100,9 @@ fn main() { } // dnf5 - cprintln!("Checking for dnf5"); let path = Path::new(&dnf5_bin); if path.exists(){ + cprintln!("Updating via: dnf5"); let mut cmd = Command::new(&sudo_bin) .arg(&dnf5_bin).arg("--refresh").arg("--skip-broken").arg("--nobest").arg("-y").arg("update") @@ -110,99 +112,99 @@ fn main() { } // pacman - cprintln!("Checking for pacman"); let path = Path::new(&pacman_bin); if path.exists(){ - let mut cmd = + cprintln!("Updating via: pacman"); + let mut cmd = Command::new(&sudo_bin) .arg(&pacman_bin).arg("-Syu") .stdout(Stdio::inherit()).stderr(Stdio::inherit()) .spawn().unwrap(); let _output = cmd.wait(); } - + // urpmi - cprintln!("Checking for urpmi"); let path = Path::new(&urpmi_bin); if path.exists(){ - let mut cmd = + cprintln!("Updating via urpmi"); + let mut cmd = Command::new(&sudo_bin) .arg(&urpmi_bin).arg("--auto-update").arg("-y") .stdout(Stdio::inherit()).stderr(Stdio::inherit()) .spawn().unwrap(); let _output = cmd.wait(); } - + // zypper - cprintln!("Checking for zypper"); let path = Path::new(&zypper_bin); if path.exists(){ - let mut cmd = + cprintln!("Updating via: zypper"); + let mut cmd = Command::new(&sudo_bin) .arg(&zypper_bin).arg("in").arg("-y") .stdout(Stdio::inherit()).stderr(Stdio::inherit()) .spawn().unwrap(); let _output = cmd.wait(); } - + // Check container formats - cprintln!("Checking application containers"); - - + cprintln!("Checking application containers"); + + // flatpak - cprintln!("Checking for user flatpak installs"); let path = Path::new(&flatpak_bin); if path.exists(){ - let mut cmd = + cprintln!("Updating user flatpak installs"); + let mut cmd = Command::new(&flatpak_bin) .arg("update").arg("--user").arg("-y") .stdout(Stdio::inherit()).stderr(Stdio::inherit()) .spawn().unwrap(); - let _output = cmd.wait(); + let _output = cmd.wait(); } - cprintln!("Checking for system flatpak installs"); let path = Path::new(&flatpak_bin); if path.exists(){ - let mut cmd = + cprintln!("Updating system flatpak installs"); + let mut cmd = Command::new(&sudo_bin) .arg(&flatpak_bin).arg("update").arg("-y") .stdout(Stdio::inherit()).stderr(Stdio::inherit()) .spawn().unwrap(); - let _output = cmd.wait(); + let _output = cmd.wait(); } // snap - cprintln!("Checking for user snap installation"); let path = Path::new(&snap_bin); if path.exists(){ - let mut cmd = + cprintln!("Updating user snap installation"); + let mut cmd = Command::new(&snap_bin) .arg("refresh").arg("-y") .stdout(Stdio::inherit()).stderr(Stdio::inherit()) .spawn().unwrap(); - let _output = cmd.wait(); + let _output = cmd.wait(); } - cprintln!("Checking for system snap installation"); let path = Path::new(&snap_bin); if path.exists(){ - let mut cmd = + cprintln!("Updating system snap installation"); + let mut cmd = Command::new(&sudo_bin) .arg(&snap_bin).arg("refresh").arg("-y") .stdout(Stdio::inherit()).stderr(Stdio::inherit()) .spawn().unwrap(); - let _output = cmd.wait(); - } - + let _output = cmd.wait(); + } + //Python - cprintln!("Updating Python user installation via pip-review"); let path = Path::new(&pip_review_bin); if path.exists(){ - let mut cmd = + cprintln!("Updating Python user installation via pip-review"); + let mut cmd = Command::new(&pip_review_bin) .arg("--auto").arg("--local").arg("--user") .stdout(Stdio::inherit()).stderr(Stdio::inherit()) .spawn().unwrap(); let _output = cmd.wait(); } - } + } } diff --git a/osupdater/src/main.rs.backup b/osupdater/src/main.rs.backup deleted file mode 100644 index 4630cd7..0000000 --- a/osupdater/src/main.rs.backup +++ /dev/null @@ -1,191 +0,0 @@ -use std::process::{Command, Stdio}; -use std::path::Path; -use color_print::cprintln; - -fn trim_newline(s: &mut String) { - if s.ends_with('\n') { - s.pop(); - if s.ends_with('\r') { - s.pop(); - } - } -} - -fn main() { - { - // Tell user that we are going to start the update procedure - cprintln!("osupdater : rust edition\n"); - cprintln!("This tool will locate any package managers on your system and run the update tool appropriate to it.\n"); - cprintln!("Looking for native package managers.\n"); - let find_sudo = Command::new("which") - .arg("sudo").stdout(Stdio::piped()).output().unwrap(); - let mut sudo_bin = String::from_utf8(find_sudo.stdout).unwrap(); - trim_newline(&mut sudo_bin); - - let find_apt = Command::new("which") - .arg("apt").stdout(Stdio::piped()).output().unwrap(); - let mut apt_bin = String::from_utf8(find_apt.stdout).unwrap(); - trim_newline(&mut apt_bin); - - let find_dnf = Command::new("which") - .arg("dnf").stdout(Stdio::piped()).output().unwrap(); - let mut dnf_bin = String::from_utf8(find_dnf.stdout).unwrap(); - trim_newline(&mut dnf_bin); - - let find_pacman = Command::new("which") - .arg("pacman").stdout(Stdio::piped()).output().unwrap(); - let mut pacman_bin = String::from_utf8(find_pacman.stdout).unwrap(); - trim_newline(&mut pacman_bin); - - let find_urpmi = Command::new("which") - .arg("urpmi").stdout(Stdio::piped()).output().unwrap(); - let mut urpmi_bin = String::from_utf8(find_urpmi.stdout).unwrap(); - trim_newline(&mut urpmi_bin); - - let find_zypper = Command::new("which") - .arg("zypper").stdout(Stdio::piped()).output().unwrap(); - let mut zypper_bin = String::from_utf8(find_zypper.stdout).unwrap(); - trim_newline(&mut zypper_bin); - - let find_flatpak = Command::new("which") - .arg("flatpak").stdout(Stdio::piped()).output().unwrap(); - let mut flatpak_bin = String::from_utf8(find_flatpak.stdout).unwrap(); - trim_newline(&mut flatpak_bin); - - let find_snap = Command::new("which") - .arg("snap").stdout(Stdio::piped()).output().unwrap(); - let mut snap_bin = String::from_utf8(find_snap.stdout).unwrap(); - trim_newline(&mut snap_bin); - - let find_pip_review = Command::new("which") - .arg("pip-review").stdout(Stdio::piped()).output().unwrap(); - let mut pip_review_bin = String::from_utf8(find_pip_review.stdout).unwrap(); - trim_newline(&mut pip_review_bin); - - //apt - cprintln!("Checking for apt"); - let path = Path::new(&apt_bin); - if path.exists(){ - let mut cmd = - Command::new(&sudo_bin) - .arg(&apt_bin).arg("update").arg("-y") - .stdout(Stdio::inherit()).stderr(Stdio::inherit()) - .spawn().unwrap(); - let _output = cmd.wait(); - let mut cmd = - Command::new(&sudo_bin) - .arg(&apt_bin).arg("upgrade").arg("-y") - .stdout(Stdio::inherit()).stderr(Stdio::inherit()) - .spawn().unwrap(); - let _output = cmd.wait(); - } - - // dnf - cprintln!("hecking for dnf"); - let path = Path::new(&dnf_bin); - if path.exists(){ - let mut cmd = - Command::new(&sudo_bin) - .arg(&dnf_bin).arg("--refresh").arg("--skip-broken").arg("--nobest").arg("-y").arg("update") - .stdout(Stdio::inherit()).stderr(Stdio::inherit()) - .spawn().unwrap(); - let _output = cmd.wait(); - } - - // pacman - cprintln!("Checking for pacman"); - let path = Path::new(&pacman_bin); - if path.exists(){ - let mut cmd = - Command::new(&sudo_bin) - .arg(&pacman_bin).arg("-Syu") - .stdout(Stdio::inherit()).stderr(Stdio::inherit()) - .spawn().unwrap(); - let _output = cmd.wait(); - } - - // urpmi - cprintln!("Checking for urpmi"); - let path = Path::new(&urpmi_bin); - if path.exists(){ - let mut cmd = - Command::new(&sudo_bin) - .arg(&urpmi_bin).arg("--auto-update").arg("-y") - .stdout(Stdio::inherit()).stderr(Stdio::inherit()) - .spawn().unwrap(); - let _output = cmd.wait(); - } - - // zypper - cprintln!("Checking for zypper"); - let path = Path::new(&zypper_bin); - if path.exists(){ - let mut cmd = - Command::new(&sudo_bin) - .arg(&zypper_bin).arg("in").arg("-y") - .stdout(Stdio::inherit()).stderr(Stdio::inherit()) - .spawn().unwrap(); - let _output = cmd.wait(); - } - - // Check container formats - cprintln!("Checking application containers"); - - - // flatpak - cprintln!("Checking for user flatpak installs"); - let path = Path::new(&flatpak_bin); - if path.exists(){ - let mut cmd = - Command::new(&flatpak_bin) - .arg("update").arg("--user").arg("-y") - .stdout(Stdio::inherit()).stderr(Stdio::inherit()) - .spawn().unwrap(); - let _output = cmd.wait(); - } - cprintln!("Checking for system flatpak installs"); - let path = Path::new(&flatpak_bin); - if path.exists(){ - let mut cmd = - Command::new(&sudo_bin) - .arg(&flatpak_bin).arg("update").arg("-y") - .stdout(Stdio::inherit()).stderr(Stdio::inherit()) - .spawn().unwrap(); - let _output = cmd.wait(); - } - - // snap - cprintln!("Checking for user snap installation"); - let path = Path::new(&snap_bin); - if path.exists(){ - let mut cmd = - Command::new(&snap_bin) - .arg("refresh").arg("-y") - .stdout(Stdio::inherit()).stderr(Stdio::inherit()) - .spawn().unwrap(); - let _output = cmd.wait(); - } - cprintln!("Checking for system snap installation"); - let path = Path::new(&snap_bin); - if path.exists(){ - let mut cmd = - Command::new(&sudo_bin) - .arg(&snap_bin).arg("refresh").arg("-y") - .stdout(Stdio::inherit()).stderr(Stdio::inherit()) - .spawn().unwrap(); - let _output = cmd.wait(); - } - - //Python - cprintln!("Updating Python user installation via pip-review"); - let path = Path::new(&pip_review_bin); - if path.exists(){ - let mut cmd = - Command::new(&pip_review_bin) - .arg("--auto").arg("--local").arg("--user") - .stdout(Stdio::inherit()).stderr(Stdio::inherit()) - .spawn().unwrap(); - let _output = cmd.wait(); - } - } -}