Skip to content

Commit

Permalink
Use nix for hostname and kernel (utsname)
Browse files Browse the repository at this point in the history
  • Loading branch information
valpackett committed Feb 13, 2022
1 parent 69e97b5 commit 8367221
Show file tree
Hide file tree
Showing 3 changed files with 50 additions and 42 deletions.
41 changes: 41 additions & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -8,3 +8,4 @@ edition = "2021"
[dependencies]
regex = "1"
systemstat = "0.1"
nix = "0.23"
50 changes: 8 additions & 42 deletions src/fields.rs
Original file line number Diff line number Diff line change
Expand Up @@ -33,20 +33,10 @@ pub fn get_user_host_name(is_christmas: bool) -> Result<(String, String), String
}

// Hostname
let hostname_file = fs::File::open("/etc/hostname");

if hostname_file.is_err() {
return Err("error".to_string());
}

let mut hostname_file = hostname_file.unwrap();
let mut hostname = String::new();

let result = hostname_file.read_to_string(&mut hostname);

if result.is_err() {
return Err("error".to_string());
}
let mut buf = [0u8; 128];
let hostname_cstr = nix::unistd::gethostname(&mut buf)
.map_err(|_| "Failed getting hostname".to_owned())?;
let hostname = hostname_cstr.to_str().map_err(|_| "Failed decoding hostname")?;

// Combine username and hostname into a formatted string
let main_color: &str;
Expand Down Expand Up @@ -154,34 +144,10 @@ pub fn get_distro_name() -> Result<String, String> {
}

pub fn get_kernel() -> Result<String, String> {
let kernel_file = fs::File::open("/proc/version");

if kernel_file.is_err() {
return Err("Error".to_string());
}

let mut kernel_file = kernel_file.unwrap();
let mut kernel = String::new();

let result = kernel_file.read_to_string(&mut kernel);

if result.is_err() {
return Err("error".to_string());
}

let re_kernel = match_regex(&kernel,
r#"(?x)
Linux\sversion\s
(?P<kernel_version>\S+)"#.to_string());

if re_kernel.is_none() {
return Err("Error".to_string());
}

let re_kernel = re_kernel.unwrap();

let kernel = re_kernel.name("kernel_version").unwrap().as_str();
Ok(format_data("kernel", kernel))
let uname = nix::sys::utsname::uname();
Ok(format_data(
"kernel",
&format!("{} {}", uname.release(), uname.machine())))
}

pub fn get_shell() -> Result<String, String> {
Expand Down

0 comments on commit 8367221

Please sign in to comment.