aboutsummaryrefslogtreecommitdiffstats
path: root/crates/atuin-client/src/distro.rs
diff options
context:
space:
mode:
authorBenedikt Peetz <benedikt.peetz@b-peetz.de>2026-06-11 00:54:30 +0200
committerBenedikt Peetz <benedikt.peetz@b-peetz.de>2026-06-11 00:54:30 +0200
commit5c39e7cf284a1f6e9a1657f2deb44e359fc47eb8 (patch)
treec64baa8d5866c8e339eaf660dd3f94f30a3f7d8a /crates/atuin-client/src/distro.rs
parentchore: Somewhat simplify sync code (diff)
downloadatuin-5c39e7cf284a1f6e9a1657f2deb44e359fc47eb8.zip
chore: Move everything into one big crate
That helps remove duplicated code and rustc/cargo will now also show dead code correctly.
Diffstat (limited to 'crates/atuin-client/src/distro.rs')
-rw-r--r--crates/atuin-client/src/distro.rs89
1 files changed, 0 insertions, 89 deletions
diff --git a/crates/atuin-client/src/distro.rs b/crates/atuin-client/src/distro.rs
deleted file mode 100644
index dead8355..00000000
--- a/crates/atuin-client/src/distro.rs
+++ /dev/null
@@ -1,89 +0,0 @@
-use std::process::Command;
-
-/// Detect the Linux distribution from the system,
-/// using system-specific release files and falling
-/// back to lsb_release.
-pub fn detect_linux_distribution() -> String {
- detect_from_os_release()
- .or_else(detect_from_debian_version)
- .or_else(detect_from_centos_release)
- .or_else(detect_from_redhat_release)
- .or_else(detect_from_fedora_release)
- .or_else(detect_from_arch_release)
- .or_else(detect_from_alpine_release)
- .or_else(detect_from_suse_release)
- .or_else(detect_from_lsb_release)
- .unwrap_or_else(|| "Unknown".to_string())
-}
-
-fn detect_from_os_release() -> Option<String> {
- let content = std::fs::read_to_string("/etc/os-release").ok()?;
-
- content
- .lines()
- .find(|l| l.starts_with("PRETTY_NAME="))
- .and_then(|l| l.split_once('=').map(|s| s.1))
- .map(|s| s.trim_matches('"').to_string())
-}
-
-fn detect_from_debian_version() -> Option<String> {
- std::fs::read_to_string("/etc/debian_version")
- .ok()
- .map(|v| format!("Debian {}", v.trim()))
-}
-
-fn detect_from_centos_release() -> Option<String> {
- std::fs::read_to_string("/etc/centos-release")
- .ok()
- .map(|v| v.trim().to_string())
-}
-
-fn detect_from_redhat_release() -> Option<String> {
- std::fs::read_to_string("/etc/redhat-release")
- .ok()
- .map(|v| v.trim().to_string())
-}
-
-fn detect_from_fedora_release() -> Option<String> {
- std::fs::read_to_string("/etc/fedora-release")
- .ok()
- .map(|v| v.trim().to_string())
-}
-
-fn detect_from_arch_release() -> Option<String> {
- std::fs::read_to_string("/etc/arch-release")
- .ok()
- .filter(|v| !v.trim().is_empty())
- .map(|_| "Arch Linux".to_string())
-}
-
-fn detect_from_alpine_release() -> Option<String> {
- std::fs::read_to_string("/etc/alpine-release")
- .ok()
- .map(|v| format!("Alpine {}", v.trim()))
-}
-
-fn detect_from_suse_release() -> Option<String> {
- std::fs::read_to_string("/etc/SuSE-release")
- .ok()
- .and_then(|content| content.lines().next().map(|l| l.trim().to_string()))
-}
-
-fn detect_from_lsb_release() -> Option<String> {
- let output = Command::new("lsb_release").arg("-a").output().ok()?;
-
- if !output.status.success() {
- return None;
- }
-
- let output = String::from_utf8(output.stdout).ok()?;
- linux_distro_from_lsb_release(&output)
-}
-
-fn linux_distro_from_lsb_release(output: &str) -> Option<String> {
- output
- .lines()
- .find(|line| line.starts_with("Description:"))
- .and_then(|line| line.split_once(':').map(|s| s.1))
- .map(|s| s.trim().to_string())
-}