From f26e48accad237b82294603f137a71ad65642b42 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Benjamin=20St=C3=BCrz?= Date: Wed, 2 Nov 2022 11:00:10 +0100 Subject: [PATCH] OpenBSD support (#104) --- src/main.rs | 10 ++++++++++ src/steps/os/mod.rs | 2 ++ src/steps/os/openbsd.rs | 17 +++++++++++++++++ 3 files changed, 29 insertions(+) create mode 100644 src/steps/os/openbsd.rs diff --git a/src/main.rs b/src/main.rs index d75f4645..66210df3 100644 --- a/src/main.rs +++ b/src/main.rs @@ -209,6 +209,11 @@ fn run() -> Result<()> { freebsd::upgrade_packages(sudo.as_ref(), run_type) })?; + #[cfg(target_os = "openbsd")] + runner.execute(Step::Pkg, "OpenBSD Packages", || { + openbsd::upgrade_packages(sudo.as_ref(), run_type) + })?; + #[cfg(target_os = "android")] runner.execute(Step::Pkg, "Termux Packages", || android::upgrade_packages(&ctx))?; @@ -411,6 +416,11 @@ fn run() -> Result<()> { freebsd::upgrade_freebsd(sudo.as_ref(), run_type) })?; + #[cfg(target_os = "openbsd")] + runner.execute(Step::System, "OpenBSD Upgrade", || { + openbsd::upgrade_openbsd(sudo.as_ref(), run_type) + })?; + #[cfg(windows)] runner.execute(Step::System, "Windows update", || windows::windows_update(&ctx))?; diff --git a/src/steps/os/mod.rs b/src/steps/os/mod.rs index fc7a5a78..4df39e21 100644 --- a/src/steps/os/mod.rs +++ b/src/steps/os/mod.rs @@ -10,6 +10,8 @@ pub mod freebsd; pub mod linux; #[cfg(target_os = "macos")] pub mod macos; +#[cfg(target_os = "openbsd")] +pub mod openbsd; #[cfg(unix)] pub mod unix; #[cfg(target_os = "windows")] diff --git a/src/steps/os/openbsd.rs b/src/steps/os/openbsd.rs new file mode 100644 index 00000000..dec83d22 --- /dev/null +++ b/src/steps/os/openbsd.rs @@ -0,0 +1,17 @@ +use crate::executor::RunType; +use crate::terminal::print_separator; +use crate::utils::require_option; +use anyhow::Result; +use std::path::PathBuf; + +pub fn upgrade_openbsd(sudo: Option<&PathBuf>, run_type: RunType) -> Result<()> { + let sudo = require_option(sudo, String::from("No sudo detected"))?; + print_separator("OpenBSD Update"); + run_type.execute(sudo).args(&["/usr/sbin/sysupgrade", "-n"]).check_run() +} + +pub fn upgrade_packages(sudo: Option<&PathBuf>, run_type: RunType) -> Result<()> { + let sudo = require_option(sudo, String::from("No sudo detected"))?; + print_separator("OpenBSD Packages"); + run_type.execute(sudo).args(&["/usr/sbin/pkg_add", "-u"]).check_run() +}