From ebb66e26a4acb0ef8e699f2e17efa95b1c760f2d Mon Sep 17 00:00:00 2001 From: Laurent le Beau-Martin <1180863+laurentlbm@users.noreply.github.com> Date: Thu, 2 Sep 2021 16:54:31 +0000 Subject: [PATCH] Add Android support (#749) --- src/main.rs | 3 +++ src/steps/os/android.rs | 31 +++++++++++++++++++++++++++++++ src/steps/os/mod.rs | 2 ++ 3 files changed, 36 insertions(+) create mode 100644 src/steps/os/android.rs 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")]