@@ -13,12 +13,11 @@ use std::io::{self, Write};
1313
1414/// Run the setup command
1515pub fn run_setup ( ) -> Result < ( ) , AkonError > {
16+ println ! ( "[SETUP] {}" , "akon VPN Setup" . bright_white( ) . bold( ) ) ;
1617 println ! (
17- "{} {}" ,
18- "🔐" . bright_magenta( ) ,
19- "akon VPN Setup" . bright_white( ) . bold( )
18+ "{}" ,
19+ "========================================" . bright_white( )
2020 ) ;
21- println ! ( "{}" , "=================" . bright_white( ) ) ;
2221 println ! ( ) ;
2322 println ! (
2423 "{}" ,
@@ -38,7 +37,7 @@ pub fn run_setup() -> Result<(), AkonError> {
3837 if let Ok ( true ) = toml_config:: config_exists ( ) {
3938 println ! (
4039 "{} {}" ,
41- "⚠ " . bright_yellow( ) ,
40+ "[WARN] " . bright_yellow( ) ,
4241 "Existing configuration detected." . bright_yellow( )
4342 ) ;
4443 if !prompt_yes_no ( "Overwrite existing setup?" , false ) ? {
@@ -72,7 +71,7 @@ pub fn run_setup() -> Result<(), AkonError> {
7271 println ! ( ) ;
7372 println ! (
7473 "{} {}" ,
75- "💾 " . bright_cyan( ) ,
74+ "[SAVE] " . bright_cyan( ) ,
7675 "Saving configuration..." . bright_white( )
7776 ) ;
7877
@@ -85,15 +84,15 @@ pub fn run_setup() -> Result<(), AkonError> {
8584
8685 println ! (
8786 "{} {}" ,
88- "✅ " . bright_green( ) ,
87+ "[OK] " . bright_green( ) . bold ( ) ,
8988 "Setup complete!" . bright_green( ) . bold( )
9089 ) ;
9190 println ! ( ) ;
9291 println ! ( "{}" , "You can now use:" . bright_white( ) ) ;
93- println ! ( " {} - Connect to VPN" , "akon vpn on" . bright_cyan( ) ) ;
94- println ! ( " {} - Disconnect from VPN" , "akon vpn off" . bright_cyan( ) ) ;
92+ println ! ( " {} - Connect to VPN" , "akon vpn on" . bright_cyan( ) ) ;
93+ println ! ( " {} - Disconnect from VPN" , "akon vpn off" . bright_cyan( ) ) ;
9594 println ! (
96- " {} - Generate OTP token manually" ,
95+ " {} - Generate OTP token manually" ,
9796 "akon get-password" . bright_cyan( )
9897 ) ;
9998
@@ -110,9 +109,13 @@ fn check_keyring_availability() -> Result<(), AkonError> {
110109 Ok ( ( ) )
111110 }
112111 Err ( AkonError :: Keyring ( _) ) => {
113- println ! ( "❌ Keyring is not available or locked." ) ;
114- println ! ( "Please ensure your system keyring is unlocked and available." ) ;
115- println ! ( "On GNOME systems, this is usually handled automatically." ) ;
112+ println ! (
113+ "{} {}" ,
114+ "[ERROR]" . bright_red( ) . bold( ) ,
115+ "Keyring is not available or locked." . bright_red( ) . bold( )
116+ ) ;
117+ println ! ( " Please ensure your system keyring is unlocked and available." ) ;
118+ println ! ( " On GNOME systems, this is usually handled automatically." ) ;
116119 Err ( AkonError :: Keyring (
117120 akon_core:: error:: KeyringError :: ServiceUnavailable ,
118121 ) )
@@ -299,7 +302,7 @@ fn collect_reconnection_config(
299302
300303 println ! ( ) ;
301304 println ! (
302- "{} {}" ,
305+ " {} {}" ,
303306 "✓" . bright_green( ) ,
304307 "Reconnection configuration validated" . bright_green( )
305308 ) ;
@@ -321,7 +324,13 @@ fn collect_otp_secret() -> Result<OtpSecret, AkonError> {
321324 let secret = prompt_password ( "TOTP Secret" ) ?;
322325
323326 if secret. trim ( ) . is_empty ( ) {
324- println ! ( "❌ Secret cannot be empty. Please try again." ) ;
327+ println ! (
328+ "{} {}" ,
329+ "[ERROR]" . bright_red( ) . bold( ) ,
330+ "Secret cannot be empty. Please try again."
331+ . bright_red( )
332+ . bold( )
333+ ) ;
325334 continue ;
326335 }
327336
@@ -330,8 +339,14 @@ fn collect_otp_secret() -> Result<OtpSecret, AkonError> {
330339 match otp_secret. validate_base32 ( ) {
331340 Ok ( _) => return Ok ( otp_secret) ,
332341 Err ( _) => {
333- println ! ( "❌ Invalid Base32 format. Please check your secret and try again." ) ;
334- println ! ( " Valid characters: A-Z, 2-7, =, /" ) ;
342+ println ! (
343+ "{} {}" ,
344+ "[ERROR]" . bright_red( ) . bold( ) ,
345+ "Invalid Base32 format. Please check your secret and try again."
346+ . bright_red( )
347+ . bold( )
348+ ) ;
349+ println ! ( " Valid characters: A-Z, 2-7, =, /" ) ;
335350 continue ;
336351 }
337352 }
@@ -354,7 +369,11 @@ fn collect_pin() -> Result<Pin, AkonError> {
354369 let candidate = pin_str. trim ( ) . to_string ( ) ;
355370
356371 if candidate. is_empty ( ) {
357- println ! ( "❌ PIN cannot be empty. Please try again." ) ;
372+ println ! (
373+ "{} {}" ,
374+ "[ERROR]" . bright_red( ) . bold( ) ,
375+ "PIN cannot be empty. Please try again." . bright_red( ) . bold( )
376+ ) ;
358377 continue ;
359378 }
360379
@@ -385,7 +404,13 @@ fn prompt_required(prompt: &str, default: &str) -> Result<String, AkonError> {
385404 if !default. is_empty ( ) {
386405 return Ok ( default. to_string ( ) ) ;
387406 }
388- println ! ( "❌ This field is required. Please enter a value." ) ;
407+ println ! (
408+ "{} {}" ,
409+ "[ERROR]" . bright_red( ) . bold( ) ,
410+ "This field is required. Please enter a value."
411+ . bright_red( )
412+ . bold( )
413+ ) ;
389414 continue ;
390415 }
391416
0 commit comments