#[cfg(target_os = "linux")] use ini::Ini; use crate::{icons, Segment}; #[cfg(target_os = "macos")] pub fn segment(segment: &mut Segment, _: &[&str]) { segment.value = icons::get("apple"); } #[cfg(any(target_os = "openbsd", target_os = "freebsd", target_os = "netbsd"))] pub fn segment(segment: &mut Segment, _: &[&str]) { segment.value = icons::get("bsd"); } #[cfg(target_os = "linux")] pub fn segment(segment: &mut Segment, _: &[&str]) { let release = Ini::load_from_file("/etc/os-release").unwrap(); segment.value = match release.general_section()["ID"].as_ref() { "arch" => icons::get("arch"), "centos" => icons::get("centOS"), "debian" => icons::get("debian"), "fedora" => icons::get("fedora"), "linuxmint" => icons::get("mint"), "suse" | "opensuse" => icons::get("SUSE"), "ubuntu" => icons::get("ubuntu"), "elementary" => icons::get("elementary"), _ => icons::get("linux"), } } #[cfg(target_os = "windows")] pub fn segment(segment: &mut Segment, _: &[&str]) { segment.value = icons::get("windows"); }