diff --git a/os_info/src/info.rs b/os_info/src/info.rs index 5dcad29..26e2060 100644 --- a/os_info/src/info.rs +++ b/os_info/src/info.rs @@ -216,6 +216,7 @@ mod tests { Type::Android, Type::Arch, Type::Artix, + Type::Bluefin, Type::CachyOS, Type::CentOS, Type::Debian, diff --git a/os_info/src/linux/file_release.rs b/os_info/src/linux/file_release.rs index f262922..52061b8 100644 --- a/os_info/src/linux/file_release.rs +++ b/os_info/src/linux/file_release.rs @@ -99,6 +99,7 @@ static DISTRIBUTIONS: [ReleaseInfo; 6] = [ "arch" => Some(Type::Arch), "archarm" => Some(Type::Arch), "artix" => Some(Type::Artix), + "bluefin" => Some(Type::Bluefin), "cachyos" => Some(Type::CachyOS), "centos" => Some(Type::CentOS), //"clear-linux-os" => ClearLinuxOS @@ -304,6 +305,17 @@ mod tests { assert_eq!(info.codename, None); } + #[test] + fn bluefin_os_release() { + let root = "src/linux/tests/Bluefin"; + + let info = retrieve(&DISTRIBUTIONS, root).unwrap(); + assert_eq!(info.os_type(), Type::Bluefin); + assert_eq!(info.version, Version::Semantic(41, 0, 0)); + assert_eq!(info.edition, None); + assert_eq!(info.codename, None); + } + #[test] fn centos_7_os_release() { let root = "src/linux/tests/CentOS_7"; diff --git a/os_info/src/linux/lsb_release.rs b/os_info/src/linux/lsb_release.rs index 2999540..9691ec7 100644 --- a/os_info/src/linux/lsb_release.rs +++ b/os_info/src/linux/lsb_release.rs @@ -20,6 +20,7 @@ pub fn get() -> Option { Some("Amazon") | Some("AmazonAMI") => Type::Amazon, Some("Arch") => Type::Arch, Some("Artix") => Type::Artix, + Some("Bluefin") => Type::Bluefin, Some("cachyos") => Type::CachyOS, Some("CentOS") => Type::CentOS, Some("Debian") => Type::Debian, diff --git a/os_info/src/linux/mod.rs b/os_info/src/linux/mod.rs index bccee71..5d0529f 100644 --- a/os_info/src/linux/mod.rs +++ b/os_info/src/linux/mod.rs @@ -32,6 +32,7 @@ mod tests { | Type::Amazon | Type::Arch | Type::Artix + | Type::Bluefin | Type::CachyOS | Type::CentOS | Type::Debian diff --git a/os_info/src/linux/tests/Bluefin/etc/os-release b/os_info/src/linux/tests/Bluefin/etc/os-release new file mode 100644 index 0000000..b050960 --- /dev/null +++ b/os_info/src/linux/tests/Bluefin/etc/os-release @@ -0,0 +1,24 @@ +NAME="Bluefin" +VERSION="41.20250119.1 (Silverblue)" +RELEASE_TYPE=stable +ID=bluefin +ID_LIKE="fedora" +VERSION_ID=41 +VERSION_CODENAME="Archaeopteryx" +PLATFORM_ID="platform:f41" +PRETTY_NAME="Bluefin (Version: 41.20250119.1 / FROM Fedora Silverblue 41)" +ANSI_COLOR="0;38;2;60;110;180" +LOGO=fedora-logo-icon +CPE_NAME="cpe:/o:universal-blue:bluefin:41" +DEFAULT_HOSTNAME="bluefin" +HOME_URL="https://projectbluefin.io" +DOCUMENTATION_URL="https://docs.projectbluefin.io" +SUPPORT_URL="https://github.com/ublue-os/bluefin/issues/" +BUG_REPORT_URL="https://github.com/ublue-os/bluefin/issues/" +SUPPORT_END=2025-12-15 +VARIANT="Silverblue" +VARIANT_ID=bluefin-dx +OSTREE_VERSION='41.20250119.1' +BUILD_ID="36c6eef" +IMAGE_ID="bluefin-dx" +IMAGE_VERSION="41.20250119.1" diff --git a/os_info/src/os_type.rs b/os_info/src/os_type.rs index dc5baad..e04e614 100644 --- a/os_info/src/os_type.rs +++ b/os_info/src/os_type.rs @@ -22,6 +22,8 @@ pub enum Type { Arch, /// Artix Linux (). Artix, + /// Bluefin (). + Bluefin, /// CachyOS (). CachyOS, /// CentOS (). @@ -122,6 +124,7 @@ impl Display for Type { Type::AlmaLinux => write!(f, "AlmaLinux"), Type::Amazon => write!(f, "Amazon Linux AMI"), Type::Arch => write!(f, "Arch Linux"), + Type::Bluefin => write!(f, "Bluefin"), Type::CachyOS => write!(f, "CachyOS Linux"), Type::Artix => write!(f, "Artix Linux"), Type::DragonFly => write!(f, "DragonFly BSD"), @@ -169,6 +172,7 @@ mod tests { (Type::Android, "Android"), (Type::Arch, "Arch Linux"), (Type::Artix, "Artix Linux"), + (Type::Bluefin, "Bluefin"), (Type::CachyOS, "CachyOS Linux"), (Type::CentOS, "CentOS"), (Type::Debian, "Debian"),