feat: add support for chimera linux (#808)

since it also uses apk the update/upgrade is identical to alpine/wolfi
This commit is contained in:
alice
2024-05-19 12:48:51 +02:00
committed by GitHub
parent f2b17cdd9d
commit 1e9de5832d

View File

@@ -24,6 +24,7 @@ pub enum Distribution {
Arch, Arch,
Bedrock, Bedrock,
CentOS, CentOS,
Chimera,
ClearLinux, ClearLinux,
Fedora, Fedora,
FedoraImmutable, FedoraImmutable,
@@ -53,6 +54,7 @@ impl Distribution {
Ok(match id { Ok(match id {
Some("alpine") => Distribution::Alpine, Some("alpine") => Distribution::Alpine,
Some("chimera") => Distribution::Chimera,
Some("wolfi") => Distribution::Wolfi, Some("wolfi") => Distribution::Wolfi,
Some("centos") | Some("rhel") | Some("ol") => Distribution::CentOS, Some("centos") | Some("rhel") | Some("ol") => Distribution::CentOS,
Some("clear-linux-os") => Distribution::ClearLinux, Some("clear-linux-os") => Distribution::ClearLinux,
@@ -135,6 +137,7 @@ impl Distribution {
match self { match self {
Distribution::Alpine => upgrade_alpine_linux(ctx), Distribution::Alpine => upgrade_alpine_linux(ctx),
Distribution::Chimera => upgrade_chimera_linux(ctx),
Distribution::Wolfi => upgrade_wolfi_linux(ctx), Distribution::Wolfi => upgrade_wolfi_linux(ctx),
Distribution::Arch => archlinux::upgrade_arch_linux(ctx), Distribution::Arch => archlinux::upgrade_arch_linux(ctx),
Distribution::CentOS | Distribution::Fedora => upgrade_redhat(ctx), Distribution::CentOS | Distribution::Fedora => upgrade_redhat(ctx),
@@ -201,6 +204,14 @@ fn upgrade_alpine_linux(ctx: &ExecutionContext) -> Result<()> {
ctx.run_type().execute(sudo).arg(&apk).arg("upgrade").status_checked() ctx.run_type().execute(sudo).arg(&apk).arg("upgrade").status_checked()
} }
fn upgrade_chimera_linux(ctx: &ExecutionContext) -> Result<()> {
let apk = require("apk")?;
let sudo = require_option(ctx.sudo().as_ref(), REQUIRE_SUDO.to_string())?;
ctx.run_type().execute(sudo).arg(&apk).arg("update").status_checked()?;
ctx.run_type().execute(sudo).arg(&apk).arg("upgrade").status_checked()
}
fn upgrade_wolfi_linux(ctx: &ExecutionContext) -> Result<()> { fn upgrade_wolfi_linux(ctx: &ExecutionContext) -> Result<()> {
let apk = require("apk")?; let apk = require("apk")?;
let sudo = require_option(ctx.sudo().as_ref(), REQUIRE_SUDO.to_string())?; let sudo = require_option(ctx.sudo().as_ref(), REQUIRE_SUDO.to_string())?;