@@ -4,6 +4,7 @@ use std::io::{self, Write};
44use std:: thread;
55use std:: time:: Duration ;
66use std:: sync:: { Arc , atomic:: { AtomicBool , Ordering } } ;
7+
78pub fn run_command_with_spinner ( program : & str , args : Vec < & str > , message : & str ) {
89 println ! ( "{}" , format!( "▶ {}: {}" , message, args. join( " " ) ) . blue( ) . bold( ) . on_black( ) ) ;
910 let stop = Arc :: new ( AtomicBool :: new ( false ) ) ;
@@ -17,7 +18,7 @@ pub fn run_command_with_spinner(program: &str, args: Vec<&str>, message: &str) {
1718 i = ( i + 1 ) % spinner_chars. len ( ) ;
1819 thread:: sleep ( Duration :: from_millis ( 100 ) ) ;
1920 }
20- print ! ( "\r \r " ) ;
21+ print ! ( "\r \r " ) ;
2122 let _ = io:: stdout ( ) . flush ( ) ;
2223 } ) ;
2324 let child = Command :: new ( program)
@@ -45,9 +46,10 @@ pub fn run_command_with_spinner(program: &str, args: Vec<&str>, message: &str) {
4546 println ! ( "{}" , format!( "└──────────────────────────" ) . red( ) . bold( ) . on_black( ) ) ;
4647 }
4748}
49+
4850pub fn handle_update ( ) {
4951 println ! ( "{}" , "┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓" . magenta( ) . bold( ) . on_black( ) ) ;
50- println ! ( "{}" , "┃ Starting System Update ┃" . magenta( ) . bold( ) . on_black( ) ) ;
52+ println ! ( "{}" , "┃ Starting System Update ┃" . magenta( ) . bold( ) . on_black( ) ) ;
5153 println ! ( "{}" , "┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛" . magenta( ) . bold( ) . on_black( ) ) ;
5254 run_command_with_spinner ( "sudo" , vec ! [ "apt" , "update" ] , "Updating APT repositories" ) ;
5355 run_command_with_spinner ( "sudo" , vec ! [ "apt" , "upgrade" , "-y" ] , "Upgrading APT packages" ) ;
@@ -56,9 +58,10 @@ pub fn handle_update() {
5658 run_command_with_spinner ( "fwupdmgr" , vec ! [ "update" ] , "Updating firmware" ) ;
5759 run_command_with_spinner ( "omz" , vec ! [ "update" ] , "Updating Oh-My-Zsh" ) ;
5860 println ! ( "{}" , "┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓" . green( ) . bold( ) . on_black( ) ) ;
59- println ! ( "{}" , "┃ System Update Complete ┃" . green( ) . bold( ) . on_black( ) ) ;
61+ println ! ( "{}" , "┃ System Update Complete ┃" . green( ) . bold( ) . on_black( ) ) ;
6062 println ! ( "{}" , "┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛" . green( ) . bold( ) . on_black( ) ) ;
6163}
64+
6265pub fn handle_cybersecurity ( ) {
6366 println ! ( "{}" , "========== Installing Penetration Tools ==========" . cyan( ) . bold( ) . on_black( ) ) ;
6467 run_command_with_spinner ( "flatpak" , vec ! [ "remote-add" , "--if-not-exists" , "flathub" , "https://dl.flathub.org/repo/flathub.flatpakrepo" ] , "Adding flathub repo" ) ;
@@ -69,6 +72,7 @@ pub fn handle_cybersecurity() {
6972 run_command_with_spinner ( "flatpak" , vec ! [ "install" , "-y" , "flathub" , "org.ghidra_sre.Ghidra" ] , "Installing Ghidra" ) ;
7073 println ! ( "{}" , "========== Hacker-Unpack-Cybersecurity Complete ==========" . green( ) . bold( ) . on_black( ) ) ;
7174}
75+
7276pub fn handle_gaming ( ) {
7377 println ! ( "{}" , "========== Installing Gaming Tools ==========" . cyan( ) . bold( ) . on_black( ) ) ;
7478 run_command_with_spinner ( "flatpak" , vec ! [ "remote-add" , "--if-not-exists" , "flathub" , "https://dl.flathub.org/repo/flathub.flatpakrepo" ] , "Adding flathub repo" ) ;
0 commit comments