use sysinfo::{System, RefreshKind, CpuRefreshKind, MemoryRefreshKind, Disks};
use colored::*;
use std::process;
fn main() {
let mut sys = System::new_with_specifics(
RefreshKind::new()
.with_cpu(CpuRefreshKind::everything())
.with_memory(MemoryRefreshKind::everything()),
);
sys.refresh_all();
print!("\x1B[2J\x1B[1;1H");
println!("{}", r#"
███████╗██╗ ██╗███████╗██████╗ ██╗ ██╗ ██╗
██╔════╝██║ ██║██╔════╝██╔══██╗██║ ╚██╗ ██╔╝
█████╗ ██║ ██║█████╗ ██████╔╝██║ ╚████╔╝
██╔══╝ ██║ ██║██╔══╝ ██╔═══╝ ██║ ╚██╔╝
██║ ╚██████╔╝███████╗██║ ███████╗ ██║
╚═╝ ╚═════╝ ╚══════╝╚═╝ ╚══════╝ ╚═╝
Made by Draken
"#.bright_red().bold());
println!("{}", "════════════════════════════════════════════════════════".bright_white());
println!("\n{}", "🧠 CPU USAGE".bold().bright_yellow());
for (i, cpu) in sys.cpus().iter().enumerate() {
let usage = cpu.cpu_usage();
let color = if usage > 80.0 {
usage.to_string().bright_red()
} else if usage > 50.0 {
usage.to_string().bright_yellow()
} else {
usage.to_string().bright_green()
};
println!(
" {} {} → {}%",
"•".bright_black(),
format!("CPU {}", i).bright_white().bold(),
color
);
}
println!("\n{}", "💾 MEMORY INFO".bold().bright_magenta());
let total_mem = sys.total_memory() / 1024;
let used_mem = sys.used_memory() / 1024;
let mem_percent = (used_mem as f64 / total_mem as f64) * 100.0;
let mem_color = if mem_percent > 80.0 {
mem_percent.to_string().bright_red()
} else if mem_percent > 50.0 {
mem_percent.to_string().bright_yellow()
} else {
mem_percent.to_string().bright_green()
};
println!(" {} Total Memory: {} MB", "•".bright_black(), total_mem.to_string().bright_white());
println!(" {} Used Memory : {} MB ({}%)", "•".bright_black(), used_mem.to_string().bright_white(), mem_color);
println!("\n{}", "💽 DISK DETAILS".bold().bright_cyan());
let disks = Disks::new_with_refreshed_list();
if disks.is_empty() {
println!(" {} No disks detected!", "•".bright_black());
} else {
for disk in disks.list() {
println!(
" {} {} ({}) — Avail: {} MB",
"•".bright_black(),
disk.name().to_string_lossy().bright_white().bold(),
disk.file_system().to_string_lossy().bright_yellow(),
(disk.available_space() / 1024 / 1024).to_string().bright_green()
);
}
}
println!("\n{}", "⏱️ SYSTEM INFO".bold().bright_blue());
let uptime = System::uptime();
let hours = uptime / 3600;
let minutes = (uptime % 3600) / 60;
println!(
" {} Uptime: {}h {}m",
"•".bright_black(),
hours.to_string().bright_white().bold(),
minutes.to_string().bright_white().bold()
);
println!("\n{}", "════════════════════════════════════════════════════════".bright_white());
println!("{}", "🔥 SYSPLUS by Draken 🔥".bright_red().bold().italic());
println!("{}", "════════════════════════════════════════════════════════".bright_white());
process::exit(0);
}