Files
neo64fetch/src/main.rs

81 lines
2.6 KiB
Rust
Raw Normal View History

2026-01-05 17:57:53 -05:00
// neoarz
// neo64fetch - "jarvis, rewrite this project in rust"
// use colored::*;
use std::env;
use sysinfo::System;
mod helpers;
struct Stats {
// Neoarz[at]Mac
username: String,
hostname: String,
// --------------
os: String,
host: String,
kernel: String,
uptime: String,
packages: String,
shell: String,
display: String,
2026-01-05 20:42:12 -05:00
desktop_env: String,
window_manager: String,
window_manager_theme: String,
font: String,
cursor: String,
terminal: String,
terminal_font: String,
2026-01-05 17:57:53 -05:00
2026-01-05 20:42:12 -05:00
// Extra fields
2026-01-05 17:57:53 -05:00
architecture: String,
}
fn main() {
let mut sys = System::new_all();
sys.refresh_all();
let stats = Stats {
hostname: System::host_name().unwrap_or_else(|| "<unknown>".to_owned()),
username: env::var("USER")
.or_else(|_| env::var("USERNAME"))
.unwrap_or_else(|_| "<unknown>".to_owned()),
os: System::long_os_version().unwrap_or_else(|| "<unknown>".to_owned()),
host: System::name().unwrap_or_else(|| "<unknown>".to_owned()),
architecture: System::cpu_arch(),
kernel: System::kernel_long_version(),
uptime: helpers::uptime::get_uptime(System::uptime()),
packages: helpers::packages::get_brew_info(),
shell: helpers::shell::get_shell_info(),
display: helpers::display::get_display_info(),
2026-01-05 20:42:12 -05:00
desktop_env: helpers::desktop_env::get_desktop_env_info(),
window_manager: helpers::wm::get_window_manager_info().wm_pretty_name,
window_manager_theme: helpers::wm_theme::get_wm_theme_info(),
font: helpers::font::get_font_info(),
cursor: helpers::cursor::get_cursor_info(),
terminal: helpers::terminal::get_terminal_info(),
terminal_font: helpers::terminal_font::get_terminal_font_info(),
2026-01-05 17:57:53 -05:00
};
2026-01-05 20:42:12 -05:00
// TODO: Add ascii art support later
2026-01-05 17:57:53 -05:00
// Testing each component separately; going to comment out at the end
{
println!("{}", stats.username);
println!("{}", stats.hostname);
println!("{}", stats.os);
println!("{}", stats.host);
println!("{}", stats.architecture);
println!("{}", stats.kernel);
println!("{}", stats.uptime);
println!("{}", stats.packages);
println!("{}", stats.shell);
println!("{}", stats.display);
2026-01-05 20:42:12 -05:00
println!("{}", stats.desktop_env);
println!("{}", stats.window_manager);
println!("{}", stats.window_manager_theme);
println!("{}", stats.font);
println!("{}", stats.cursor);
println!("{}", stats.terminal);
println!("{}", stats.terminal_font);
2026-01-05 17:57:53 -05:00
}
}