From a0ad83a58b309b756b8f1ff6f8ca507932c1249b Mon Sep 17 00:00:00 2001 From: Yonas Yanfa Date: Tue, 15 Nov 2022 10:32:50 -0500 Subject: [PATCH] Fix unattended package upgrades on FreeBSD (#181) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Fix unattended package upgrades on FreeBSD * Fix unattended package upgrades on FreeBSD Co-authored-by: Thomas Schönauer <37108907+DottoDev@users.noreply.github.com> --- src/main.rs | 2 +- src/steps/os/freebsd.rs | 17 ++++++++++++----- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/src/main.rs b/src/main.rs index d3964f1b..a5475ea6 100644 --- a/src/main.rs +++ b/src/main.rs @@ -210,7 +210,7 @@ fn run() -> Result<()> { #[cfg(target_os = "freebsd")] runner.execute(Step::Pkg, "FreeBSD Packages", || { - freebsd::upgrade_packages(sudo.as_ref(), run_type) + freebsd::upgrade_packages(&ctx, sudo.as_ref(), run_type) })?; #[cfg(target_os = "openbsd")] diff --git a/src/steps/os/freebsd.rs b/src/steps/os/freebsd.rs index 2c57b77c..fd1bdeeb 100644 --- a/src/steps/os/freebsd.rs +++ b/src/steps/os/freebsd.rs @@ -5,6 +5,8 @@ use crate::utils::require_option; use color_eyre::eyre::Result; use std::path::PathBuf; use std::process::Command; +use crate::config::{Step}; +use crate::execution_context::ExecutionContext; pub fn upgrade_freebsd(sudo: Option<&PathBuf>, run_type: RunType) -> Result<()> { let sudo = require_option(sudo, String::from("No sudo detected"))?; @@ -15,13 +17,18 @@ pub fn upgrade_freebsd(sudo: Option<&PathBuf>, run_type: RunType) -> Result<()> .status_checked() } -pub fn upgrade_packages(sudo: Option<&PathBuf>, run_type: RunType) -> Result<()> { +pub fn upgrade_packages(ctx: &ExecutionContext, sudo: Option<&PathBuf>, run_type: RunType) -> Result<()> { let sudo = require_option(sudo, String::from("No sudo detected"))?; print_separator("FreeBSD Packages"); - run_type - .execute(sudo) - .args(["/usr/sbin/pkg", "upgrade"]) - .status_checked() + let mut command = run_type.execute(sudo); + + command.args(&["/usr/sbin/pkg", "upgrade"]); + + if ctx.config().yes(Step::System) { + command.arg("-y"); + } + + command.check_run() } pub fn audit_packages(sudo: &Option) -> Result<()> {