1use colored::Colorize;
2use sysinfo::System;
3
4pub fn print_banner(extended: bool) {
5 println!();
6 println!(" {}{}", "Proofman v".bright_purple().bold(), env!("CARGO_PKG_VERSION").bright_purple().bold());
7 let system_name = System::name().unwrap_or_else(|| "<unknown>".to_owned());
8 let system_kernel = System::kernel_version().unwrap_or_else(|| "<unknown>".to_owned());
9 let system_version = System::long_os_version().unwrap_or_else(|| "<unknown>".to_owned());
10 println!(
11 "{} {} {} ({})",
12 format!("{: >12}", "System").bright_green().bold(),
13 system_name,
14 system_kernel,
15 system_version
16 );
17 let system_hostname = System::host_name().unwrap_or_else(|| "<unknown>".to_owned());
18 println!("{} {}", format!("{: >12}", "Hostname").bright_green().bold(), system_hostname);
19
20 if extended {
21 print_extended_banner();
22 }
23}
24
25pub fn print_extended_banner() {
26 let system = System::new_all();
27
28 let system_cores =
29 sysinfo::System::physical_core_count().map(|c| c.to_string()).unwrap_or_else(|| "Unknown".to_owned());
30 let system_cores_brand = system.cpus()[0].brand();
31 println!("{} {} cores ({})", format!("{: >12}", "CPU").bright_green().bold(), system_cores, system_cores_brand);
32
33 let total_mem = system.total_memory() / 1_000_000_000;
34 let available_mem = system.available_memory() / 1_000_000_000;
35 println!(
36 "{} {}GB total ({}GB available)",
37 format!("{: >12}", "Mem").bright_green().bold(),
38 total_mem,
39 available_mem
40 );
41
42 println!(
43 "{} {}",
44 format!("{: >12}", "Loaded").bright_green().bold(),
45 std::env::current_exe().unwrap().display().to_string().as_str()
46 );
47 println!("{} {}", format!("{: >12}", "Main PID").bright_green().bold(), std::process::id().to_string().as_str());
48}