From 4c02cf33abe4094c268f1f86f40128acc4646d73 Mon Sep 17 00:00:00 2001 From: Adrian Groh Date: Sat, 3 Feb 2024 20:00:59 +0100 Subject: [PATCH] Fix bazzite os detection --- Cargo.lock | 1 + Cargo.toml | 1 + src/lib.rs | 21 +++++++++++++++------ 3 files changed, 17 insertions(+), 6 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 506de66..afb2486 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -827,6 +827,7 @@ dependencies = [ "glob", "globset", "libmacchina", + "os-release", "pfetch-extractor", "pfetch-logo-parser", "which", diff --git a/Cargo.toml b/Cargo.toml index edc85e1..cfbfb22 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -23,6 +23,7 @@ glob = "0.3.1" which = "4.4.0" libmacchina = "7.2.1" crossterm = "0.27.0" +os-release = "0.1.0" [profile.release] strip = true diff --git a/src/lib.rs b/src/lib.rs index c1b2c3c..b9f18db 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -202,13 +202,22 @@ pub fn os(general_readout: &GeneralReadout) -> Option { .unwrap_or_default() .contains("/bedrock/cross/") { - Some("Bedrock Linux".to_string()) - } else { - match general_readout.distribution() { - Ok(distribution) => Some(distribution.replace(" TEMPLATE_VERSION_ID", "")), - Err(_) => None, - } + return Some("Bedrock Linux".to_string()); } + let content = os_release::OsRelease::new().ok()?; + let version = if !content.version.is_empty() { + content.version + } else { + content.version_id + }; + // check for Bazzite + if content.pretty_name.contains("Bazzite") { + return Some(format!("Bazzite {version}")); + } + if !version.is_empty() { + return Some(format!("{} {}", content.name, version)); + } + Some(content.name) } _ => Some(general_readout.os_name().ok()?.replace("Unknown", "")), }