diff --git a/src/main.rs b/src/main.rs index 4d0c1110..2f6d7cba 100644 --- a/src/main.rs +++ b/src/main.rs @@ -186,6 +186,9 @@ fn run() -> Result<()> { freebsd::upgrade_packages(sudo.as_ref(), run_type) })?; + #[cfg(target_os = "android")] + runner.execute(Step::Pkg, "Termux Packages", || android::upgrade_packages(&ctx))?; + let emacs = emacs::Emacs::new(&base_dirs); if config.use_predefined_git_repos() { if config.should_run(Step::Emacs) { diff --git a/src/steps/os/android.rs b/src/steps/os/android.rs new file mode 100644 index 00000000..6e7bf688 --- /dev/null +++ b/src/steps/os/android.rs @@ -0,0 +1,31 @@ +use crate::execution_context::ExecutionContext; +use crate::terminal::print_separator; +use crate::utils::require; +use anyhow::Result; + +pub fn upgrade_packages(ctx: &ExecutionContext) -> Result<()> { + let pkg = require("pkg")?; + + print_separator("Termux Packages"); + + let mut command = ctx.run_type().execute(&pkg); + command.arg("upgrade"); + if ctx.config().yes() { + command.arg("-y"); + } + command.check_run()?; + + if ctx.config().cleanup() { + ctx.run_type().execute(&pkg).arg("clean").check_run()?; + + let apt = require("apt")?; + let mut command = ctx.run_type().execute(&apt); + command.arg("autoremove"); + if ctx.config().yes() { + command.arg("-y"); + } + command.check_run()?; + } + + Ok(()) +} diff --git a/src/steps/os/mod.rs b/src/steps/os/mod.rs index 78d5ce8a..63d0ef28 100644 --- a/src/steps/os/mod.rs +++ b/src/steps/os/mod.rs @@ -1,3 +1,5 @@ +#[cfg(target_os = "android")] +pub mod android; #[cfg(target_os = "dragonfly")] pub mod dragonfly; #[cfg(target_os = "freebsd")]