Skip to main content

proofman_util/
cli.rs

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}