mirror of
https://github.com/hykilpikonna/hyfetch.git
synced 2026-03-21 17:24:51 -05:00
[F] fix: custom *fetch configurations breaking hyfetch (#420)
Some checks failed
Shellcheck / check (push) Has been cancelled
Some checks failed
Shellcheck / check (push) Has been cancelled
if the backend is fastfetch, hyfetch calls `/bin/fastfetch --logo none -s OS --disable-linewrap` which for me returns: ` Artix Linux x86_64` ... and that breaks hyfetch instead, get the information from the source (/etc/os-release), which im pretty sure most fetch backends read from anyway this won't work on *BSD though, because those lack /etc/os-release, so unless calling `uname -s` is alright, BSDs would still have the problem related pull: https://github.com/hykilpikonna/hyfetch/issues/418
This commit is contained in:
parent
d4560e3edb
commit
003c295084
|
|
@ -483,9 +483,34 @@ where
|
|||
|
||||
#[tracing::instrument(level = "debug")]
|
||||
pub fn get_distro_name(backend: Backend) -> Result<String> {
|
||||
use std::collections::HashMap;
|
||||
use std::fs;
|
||||
|
||||
fn parse_os_release() -> Option<HashMap<String, String>> {
|
||||
let contents = fs::read_to_string("/etc/os-release").ok()?;
|
||||
let mut map = HashMap::new();
|
||||
|
||||
for line in contents.lines() {
|
||||
if line.trim().is_empty() || line.starts_with('#') {
|
||||
continue;
|
||||
}
|
||||
if let Some((key, value)) = line.split_once('=') {
|
||||
let mut val = value.trim().to_string();
|
||||
if val.starts_with('"') && val.ends_with('"') && val.len() > 1 {
|
||||
val = val[1..val.len().saturating_sub(1)].to_string();
|
||||
}
|
||||
map.insert(key.to_string(), val);
|
||||
}
|
||||
}
|
||||
|
||||
Some(map)
|
||||
}
|
||||
|
||||
match backend {
|
||||
#[cfg(not(target_os = "linux"))]
|
||||
Backend::Neofetch => run_neofetch_command_piped(&["ascii_distro_name"])
|
||||
.context("failed to get distro name from neofetch"),
|
||||
#[cfg(not(target_os = "linux"))]
|
||||
Backend::Fastfetch => Ok(run_fastfetch_command_piped(&[
|
||||
"--logo",
|
||||
"none",
|
||||
|
|
@ -493,6 +518,11 @@ pub fn get_distro_name(backend: Backend) -> Result<String> {
|
|||
"OS",
|
||||
"--disable-linewrap",
|
||||
]).context("failed to get distro name from fastfetch")?.replace("OS: ", "")),
|
||||
#[cfg(target_os = "linux")]
|
||||
Backend::Neofetch | Backend::Fastfetch => parse_os_release()
|
||||
.context("failed to read /etc/os-release")?
|
||||
.get("NAME").context("no NAME in /etc/os-release")
|
||||
.cloned(),
|
||||
#[cfg(feature = "macchina")]
|
||||
Backend::Macchina => {
|
||||
// Write ascii art to temp file
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user