use crate::execution_context::ExecutionContext;
use crate::terminal::print_separator;
use crate::utils::require;
use crate::Step;
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(Step::System) {
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(Step::System) {
command.arg("-y");
}
command.check_run()?;
}
Ok(())
}