11use crate :: colors:: COLORS ;
2- use color_eyre:: Result ;
32use nix:: sys:: { statvfs:: statvfs, utsname:: UtsName } ;
43use std:: {
54 env,
@@ -8,7 +7,7 @@ use std::{
87} ;
98
109pub fn get_username_and_hostname ( utsname : & UtsName ) -> String {
11- let username = env:: var ( "USER" ) . unwrap_or ( "unknown_user" . to_string ( ) ) ;
10+ let username = env:: var ( "USER" ) . unwrap_or_else ( |_| "unknown_user" . to_string ( ) ) ;
1211 let hostname = utsname
1312 . nodename ( )
1413 . to_str ( )
@@ -24,7 +23,7 @@ pub fn get_username_and_hostname(utsname: &UtsName) -> String {
2423}
2524
2625pub fn get_shell ( ) -> String {
27- let shell_path = env:: var ( "SHELL" ) . unwrap_or ( "unknown_shell" . to_string ( ) ) ;
26+ let shell_path = env:: var ( "SHELL" ) . unwrap_or_else ( |_| "unknown_shell" . to_string ( ) ) ;
2827 let shell_name = shell_path. rsplit ( '/' ) . next ( ) . unwrap_or ( "unknown_shell" ) ;
2928 shell_name. to_string ( )
3029}
@@ -34,11 +33,14 @@ pub fn get_root_disk_usage() -> Result<String, io::Error> {
3433 let block_size = vfs. block_size ( ) as u64 ;
3534 let total_blocks = vfs. blocks ( ) ;
3635 let available_blocks = vfs. blocks_available ( ) ;
36+
3737 let total_size = block_size * total_blocks;
3838 let used_size = total_size - ( block_size * available_blocks) ;
39+
3940 let total_size = total_size as f64 / ( 1024.0 * 1024.0 * 1024.0 ) ;
4041 let used_size = used_size as f64 / ( 1024.0 * 1024.0 * 1024.0 ) ;
4142 let usage = ( used_size / total_size) * 100.0 ;
43+
4244 Ok ( format ! (
4345 "{used_size:.2} GiB / {total_size:.2} GiB ({cyan}{usage:.0}%{reset})" ,
4446 cyan = COLORS . cyan,
@@ -52,7 +54,9 @@ pub fn get_memory_usage() -> Result<String, io::Error> {
5254 let mut total_memory_kb = 0.0 ;
5355 let mut available_memory_kb = 0.0 ;
5456 let mut meminfo = String :: with_capacity ( 2048 ) ;
57+
5558 File :: open ( "/proc/meminfo" ) ?. read_to_string ( & mut meminfo) ?;
59+
5660 for line in meminfo. lines ( ) {
5761 let mut split = line. split_whitespace ( ) ;
5862 match split. next ( ) . unwrap_or_default ( ) {
@@ -65,14 +69,17 @@ pub fn get_memory_usage() -> Result<String, io::Error> {
6569 _ => ( ) ,
6670 }
6771 }
72+
6873 let total_memory_gb = total_memory_kb / 1024.0 / 1024.0 ;
6974 let available_memory_gb = available_memory_kb / 1024.0 / 1024.0 ;
7075 let used_memory_gb = total_memory_gb - available_memory_gb;
76+
7177 Ok ( ( used_memory_gb, total_memory_gb) )
7278 }
7379
7480 let ( used_memory, total_memory) = parse_memory_info ( ) ?;
7581 let percentage_used = ( used_memory / total_memory * 100.0 ) . round ( ) as u64 ;
82+
7683 Ok ( format ! (
7784 "{used_memory:.2} GiB / {total_memory:.2} GiB ({cyan}{percentage_used}%{reset})" ,
7885 cyan = COLORS . cyan,
0 commit comments