diff --git a/src/steps/os/linux.rs b/src/steps/os/linux.rs index 642958e1..d7955643 100644 --- a/src/steps/os/linux.rs +++ b/src/steps/os/linux.rs @@ -23,6 +23,7 @@ static OS_RELEASE_PATH: &str = "/etc/os-release"; #[derive(Copy, Clone, Debug, PartialEq, Eq)] pub enum Distribution { Alpine, + AOSC, Wolfi, Arch, Bedrock, @@ -58,6 +59,7 @@ impl Distribution { Ok(match id { Some("alpine") => Distribution::Alpine, + Some("aosc") => Distribution::AOSC, Some("chimera") => Distribution::Chimera, Some("wolfi") => Distribution::Wolfi, Some("centos") | Some("rhel") | Some("ol") => Distribution::CentOS, @@ -161,6 +163,7 @@ impl Distribution { Distribution::PCLinuxOS => upgrade_pclinuxos(ctx), Distribution::Nobara => upgrade_nobara(ctx), Distribution::NILRT => upgrade_nilrt(ctx), + Distribution::AOSC => upgrade_aosc(ctx), } } @@ -197,6 +200,20 @@ fn update_bedrock(ctx: &ExecutionContext) -> Result<()> { Ok(()) } +fn upgrade_aosc(ctx: &ExecutionContext) -> Result<()> { + let oma = require("oma")?; + let sudo = ctx.require_sudo()?; + + let mut cmd = sudo.execute(ctx, &oma)?; + cmd.arg("upgrade"); + + if ctx.config().yes(Step::System) { + cmd.arg("-y"); + } + + cmd.status_checked() +} + fn upgrade_alpine_linux(ctx: &ExecutionContext) -> Result<()> { let apk = require("apk")?; let sudo = ctx.require_sudo()?; @@ -1137,6 +1154,11 @@ mod tests { test_template(include_str!("os_release/arch32"), Distribution::Arch); } + #[test] + fn test_aosc() { + test_template(include_str!("os_release/aosc"), Distribution::AOSC); + } + #[test] fn test_centos() { test_template(include_str!("os_release/centos"), Distribution::CentOS); diff --git a/src/steps/os/os_release/aosc b/src/steps/os/os_release/aosc new file mode 100644 index 00000000..529bb661 --- /dev/null +++ b/src/steps/os/os_release/aosc @@ -0,0 +1,10 @@ +PRETTY_NAME="AOSC OS (12.2.2)" +NAME="AOSC OS" +VERSION_ID="12.2.2" +VERSION="12.2.2 (localhost)" +BUILD_ID="20250916" +ID=aosc +ANSI_COLOR="1;36" +HOME_URL="https://aosc.io/" +SUPPORT_URL="https://github.com/AOSC-Dev/aosc-os-abbs" +BUG_REPORT_URL="https://github.com/AOSC-Dev/aosc-os-abbs/issues"