Skip to content

Commit d9d0e09

Browse files
authored
Update utils.rs
1 parent 9d61434 commit d9d0e09

File tree

1 file changed

+20
-5
lines changed

1 file changed

+20
-5
lines changed

hacker/src/utils.rs

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ use std::thread;
55
use std::time::Duration;
66
use std::sync::{Arc, atomic::{AtomicBool, Ordering}};
77
pub fn run_command_with_spinner(program: &str, args: Vec<&str>, message: &str) {
8-
println!("{}", format!("{}: {}", message, args.join(" ")).blue().bold().on_black());
8+
println!("{}", format!("{}: {}", message, args.join(" ")).blue().bold().on_black());
99
let stop = Arc::new(AtomicBool::new(false));
1010
let stop_clone = stop.clone();
1111
let spinner_chars: Vec<&str> = vec!["⠋", "⠙", "⠹", "⠸", "⠼", "⠴", "⠦", "⠧", "⠇", "⠏"];
@@ -30,19 +30,34 @@ pub fn run_command_with_spinner(program: &str, args: Vec<&str>, message: &str) {
3030
stop.store(true, Ordering::Relaxed);
3131
handle.join().unwrap();
3232
if output.status.success() {
33-
println!("{}", String::from_utf8_lossy(&output.stdout).green().bold().on_black());
33+
let out_str = String::from_utf8_lossy(&output.stdout).to_string();
34+
if !out_str.is_empty() {
35+
println!("{}", format!("┌── Output ────────────────").green().bold().on_black());
36+
println!("{}", out_str.green().on_black());
37+
println!("{}", format!("└──────────────────────────").green().bold().on_black());
38+
} else {
39+
println!("{}", "✔ Success (no output)".green().bold().on_black());
40+
}
3441
} else {
35-
println!("{}", String::from_utf8_lossy(&output.stderr).red().bold().on_black());
42+
let err_str = String::from_utf8_lossy(&output.stderr).to_string();
43+
println!("{}", format!("┌── Error ─────────────────").red().bold().on_black());
44+
println!("{}", err_str.red().on_black());
45+
println!("{}", format!("└──────────────────────────").red().bold().on_black());
3646
}
3747
}
3848
pub fn handle_update() {
39-
println!("{}", "========== Starting System Update ==========".magenta().bold().on_black());
49+
println!("{}", "┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓".magenta().bold().on_black());
50+
println!("{}", "┃ Starting System Update ┃".magenta().bold().on_black());
51+
println!("{}", "┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛".magenta().bold().on_black());
4052
run_command_with_spinner("sudo", vec!["apt", "update"], "Updating APT repositories");
4153
run_command_with_spinner("sudo", vec!["apt", "upgrade", "-y"], "Upgrading APT packages");
4254
run_command_with_spinner("flatpak", vec!["update", "-y"], "Updating Flatpak packages");
4355
run_command_with_spinner("snap", vec!["refresh"], "Refreshing Snap packages");
4456
run_command_with_spinner("fwupdmgr", vec!["update"], "Updating firmware");
45-
println!("{}", "========== System Update Complete ==========".green().bold().on_black());
57+
run_command_with_spinner("omz", vec!["update"], "Updating Oh-My-Zsh");
58+
println!("{}", "┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓".green().bold().on_black());
59+
println!("{}", "┃ System Update Complete ┃".green().bold().on_black());
60+
println!("{}", "┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛".green().bold().on_black());
4661
}
4762
pub fn handle_cybersecurity() {
4863
println!("{}", "========== Installing Penetration Tools ==========".cyan().bold().on_black());

0 commit comments

Comments
 (0)