Update main.rs

This commit is contained in:
Voyage 2023-06-19 22:28:31 +03:00 committed by GitHub
parent aef1690c1b
commit 90fd10f202
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -10,7 +10,7 @@ fn main() {
// let user = Command::new("whoami") // let user = Command::new("whoami")
// .output() // .output()
// .expect("Failed to get user"); // .expect("Failed to get user");
// let user = String::from_utf8_lossy(&user.stdout); // let user = String::from_utf8_lossy(&user.stdout);
// let hostname = Command::new("uname") // let hostname = Command::new("uname")
@ -22,14 +22,14 @@ fn main() {
// let hostname = String::from_utf8_lossy(&hostname.stdout); // let hostname = String::from_utf8_lossy(&hostname.stdout);
let user = env::var("USER"); let user = env::var("USER");
let mut hostname = String::new(); let mut hostname = String::new();
{ {
let hostname_file = File::open("/etc/hostname").expect("u forgor the /etc/hostname file u arch-using moronbox"); let hostname_file = File::open("/etc/hostname").expect("u forgor the /etc/hostname file u arch-using moronbox");
let mut hostname_reader = BufReader::new(hostname_file); let mut hostname_reader = BufReader::new(hostname_file);
hostname_reader.read_line(&mut hostname).expect("Failed string conversion... EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE"); hostname_reader.read_line(&mut hostname).expect("Failed string conversion... EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE");
} }
// Read release file, AKA get OS name // Read release file, AKA get OS name
let mut release_distro = String::new(); let mut release_distro = String::new();
{ {
@ -42,7 +42,7 @@ fn main() {
let mut distro_name: String = release_distro[5..release_distro.len() - 1].to_string(); let mut distro_name: String = release_distro[5..release_distro.len() - 1].to_string();
distro_name = distro_name.replace('\"', ""); distro_name = distro_name.replace('\"', "");
// println!("OS: {}", Red.paint(distro_name.clone())); // println!("OS: {}", Red.paint(distro_name.clone()));
let figlet = Command::new("figlet") let figlet = Command::new("figlet")
.args(["-f", "smslant", &distro_name]) .args(["-f", "smslant", &distro_name])
.output(); .output();
@ -59,7 +59,7 @@ fn main() {
// I know it's terrible, but it works. // I know it's terrible, but it works.
let mut kernel = String::new(); let mut kernel = String::new();
{ {
let kernel_file = File::open("/proc/version").expect("do u even linux bro???"); let kernel_file = File::open("/proc/version").expect("Read the README.md you dumbass");
let mut kernel_reader = BufReader::new(kernel_file); let mut kernel_reader = BufReader::new(kernel_file);
kernel_reader.read_line(&mut kernel).expect("Failed string conversion"); kernel_reader.read_line(&mut kernel).expect("Failed string conversion");
} }
@ -81,7 +81,7 @@ fn main() {
// Vars // Vars
let mut ramtotal: u32 = 0; let mut ramtotal: u32 = 0;
let mut ramavail: u32 = 0; let mut ramavail: u32 = 0;
// Read 1st & 2nd line // Read 1st & 2nd line
if let Some(Ok(line)) = lines.next() { if let Some(Ok(line)) = lines.next() {
if let Some(idx) = line.find(char::is_whitespace) { if let Some(idx) = line.find(char::is_whitespace) {
@ -112,9 +112,9 @@ fn main() {
let ramused = ramtotal - ramavail; let ramused = ramtotal - ramavail;
println!("│ Mem: {}/{} GB ({} GB Available)", Green.paint(ramused.to_string()), Green.paint(ramtotal.to_string()), Green.paint(ramavail.to_string())); println!("│ Mem: {}/{} GB ({} GB Available)", Green.paint(ramused.to_string()), Green.paint(ramtotal.to_string()), Green.paint(ramavail.to_string()));
} }
{ {
// This took me unusually long. // This took me unusually long.
@ -128,16 +128,26 @@ fn main() {
// was never expecting rounding to be this difficult // was never expecting rounding to be this difficult
let uptimeint = uptime.parse::<f32>(); let uptimeint = uptime.parse::<f32>();
let roundeduptimeint: u32 = uptimeint.expect("phoque").round() as u32; let roundeduptimeint: u32 = uptimeint.expect("phoque").round() as u32;
let uptimemins: u32 = roundeduptimeint / 60; let uptimemins: u32 = roundeduptimeint / 60;
println!("│ Uptime: {} minutes", Blue.paint(uptimemins.to_string())) println!("│ Uptime: {} minutes", Blue.paint(uptimemins.to_string()))
} }
// Get shell
let shell = env::var("SHELL").expect("Could not read $SHELL variable");
println!("│ Shell: {}", Cyan.paint(shell));
// Get shell
let shell_raw = env::var("SHELL").expect("Could not read $SHELL variable");
// Split the path using '/' as the separator
// Thanks ChatGPT
let parts: Vec<&str> = shell_raw.rsplitn(2, '/').collect();
// Check if the path contains at least one '/'
if parts.len() > 1 {
let shell = parts[0];
println!("│ Shell: {}", Cyan.paint(shell));
} else {
println!("Invalid path format.");
}
// Time for a challenge, Get CPU model! // Time for a challenge, Get CPU model!
{ {
let file = File::open("/proc/cpuinfo").expect("Could not read /proc/cpuinfo"); let file = File::open("/proc/cpuinfo").expect("Could not read /proc/cpuinfo");
@ -163,5 +173,5 @@ fn main() {
// Colours // Colours
println!("\n{} {} {} {} {} {}", Red.paint(""), Green.paint(""), Yellow.paint(""), Blue.paint(""), Purple.paint(""), Cyan.paint("")); println!("\n{} {} {} {} {} {}", Red.paint(""), Green.paint(""), Yellow.paint(""), Blue.paint(""), Purple.paint(""), Cyan.paint(""));
} }