1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
use std::process::Command; #[derive(Debug)] pub struct OSInfo { pub kernel_name: String, pub os_name: String, } pub fn get_info() -> OSInfo { let output = Command::new("uname") .arg("-a") .output() .expect("Failed to get OS info"); parse_info(String::from_utf8(output.stdout).unwrap()) } fn parse_info(string: String) -> OSInfo { let info: Vec<&str> = string.trim().split(" ").collect(); OSInfo { kernel_name: info.first().unwrap().to_string(), os_name: info.last().unwrap().to_string(), } }