diff --git a/README.md b/README.md index 98768ba..8aa2032 100644 --- a/README.md +++ b/README.md @@ -31,7 +31,9 @@ Trusted contributors will count as a passed/failed contributor test. |CONTAINER TYPE|PERSONALLY TESTED|CONTRIBUTOR TESTED| | :-- | :-- | :-- | +|Distrobox|yes|no| |Flatpak|yes|no| +|Podman|yes|no| |Snap|yes|no| |OTHER TOOLS|PERSONALLY TESTED|CONTRIBUTOR TESTED| diff --git a/osupdater/src/main.rs b/osupdater/src/main.rs index e41b76b..db2b984 100644 --- a/osupdater/src/main.rs +++ b/osupdater/src/main.rs @@ -74,6 +74,11 @@ fn main() { let mut distrobox_upgrade_bin = String::from_utf8(find_distrobox_upgrade.stdout).unwrap(); trim_newline(&mut distrobox_upgrade_bin); + let find_podman = Command::new("which") + .arg("podman").stdout(Stdio::piped()).output().unwrap(); + let mut podman_bin = String::from_utf8(find_podman.stdout).unwrap(); + trim_newline(&mut podman_bin); + //apt let path = Path::new(&apt_bin); if path.exists(){ @@ -223,5 +228,53 @@ fn main() { .spawn().unwrap(); let _output = cmd.wait(); } + + //Podman system + let path = Path::new(&podman_bin); + if path.exists(){ + cprintln!("Updating Podman system containers"); + let mut cmd = + Command::new(&sudo_bin) + .arg(&podman_bin).arg("auto-update") + .stdout(Stdio::inherit()).stderr(Stdio::inherit()) + .spawn().unwrap(); + let _output = cmd.wait(); + } + + //Podman user + let path = Path::new(&podman_bin); + if path.exists(){ + cprintln!("Updating Podman user containers"); + let mut cmd = + Command::new(&podman_bin) + .arg("auto-update") + .stdout(Stdio::inherit()).stderr(Stdio::inherit()) + .spawn().unwrap(); + let _output = cmd.wait(); + } + + //Podman system prune + let path = Path::new(&podman_bin); + if path.exists(){ + cprintln!("Pruning Podman system containers"); + let mut cmd = + Command::new(&sudo_bin) + .arg(&podman_bin).arg("system").arg("prune").arg("-af") + .stdout(Stdio::inherit()).stderr(Stdio::inherit()) + .spawn().unwrap(); + let _output = cmd.wait(); + } + + //Podman user prune + let path = Path::new(&podman_bin); + if path.exists(){ + cprintln!("Pruning Podman user containers"); + let mut cmd = + Command::new(&podman_bin) + .arg("system").arg("prune").arg("-af") + .stdout(Stdio::inherit()).stderr(Stdio::inherit()) + .spawn().unwrap(); + let _output = cmd.wait(); + } } }