@@ -10,6 +10,9 @@ use std::path::Path;
1010
1111use cargo_util:: paths;
1212use indexmap:: IndexSet ;
13+ use termcolor:: Color :: Green ;
14+ use termcolor:: Color :: Red ;
15+ use termcolor:: ColorSpec ;
1316use toml_edit:: Item as TomlItem ;
1417
1518use crate :: core:: dependency:: DepKind ;
@@ -544,6 +547,10 @@ fn populate_available_features(
544547fn print_msg ( shell : & mut Shell , dep : & Dependency , section : & [ String ] ) -> CargoResult < ( ) > {
545548 use std:: fmt:: Write ;
546549
550+ if matches ! ( shell. verbosity( ) , crate :: core:: shell:: Verbosity :: Quiet ) {
551+ return Ok ( ( ) ) ;
552+ }
553+
547554 let mut message = String :: new ( ) ;
548555 write ! ( message, "{}" , dep. name) ?;
549556 match dep. source ( ) {
@@ -573,6 +580,7 @@ fn print_msg(shell: &mut Shell, dep: &Dependency, section: &[String]) -> CargoRe
573580 } ;
574581 write ! ( message, " {section}" ) ?;
575582 write ! ( message, "." ) ?;
583+ shell. status ( "Adding" , message) ?;
576584
577585 let mut activated: IndexSet < _ > = dep. features . iter ( ) . flatten ( ) . map ( |s| s. as_str ( ) ) . collect ( ) ;
578586 if dep. default_features ( ) . unwrap_or ( true ) {
@@ -604,20 +612,20 @@ fn print_msg(shell: &mut Shell, dep: &Dependency, section: &[String]) -> CargoRe
604612 . collect :: < Vec < _ > > ( ) ;
605613 deactivated. sort ( ) ;
606614 if !activated. is_empty ( ) || !deactivated. is_empty ( ) {
607- writeln ! ( message ) ? ;
608- write ! ( message , "{:>13 }Features:", " " ) ?;
615+ let prefix = format ! ( "{:>13}" , " " ) ;
616+ shell . write_stderr ( format_args ! ( "{ }Features:\n ", prefix ) , & ColorSpec :: new ( ) ) ?;
609617 for feat in activated {
610- writeln ! ( message) ?;
611- write ! ( message, "{:>13}+ {}" , " " , feat) ?;
618+ shell. write_stderr ( & prefix, & ColorSpec :: new ( ) ) ?;
619+ shell. write_stderr ( '+' , & ColorSpec :: new ( ) . set_bold ( true ) . set_fg ( Some ( Green ) ) ) ?;
620+ shell. write_stderr ( format_args ! ( " {}\n " , feat) , & ColorSpec :: new ( ) ) ?;
612621 }
613622 for feat in deactivated {
614- writeln ! ( message) ?;
615- write ! ( message, "{:>13}- {}" , " " , feat) ?;
623+ shell. write_stderr ( & prefix, & ColorSpec :: new ( ) ) ?;
624+ shell. write_stderr ( '-' , & ColorSpec :: new ( ) . set_bold ( true ) . set_fg ( Some ( Red ) ) ) ?;
625+ shell. write_stderr ( format_args ! ( " {}\n " , feat) , & ColorSpec :: new ( ) ) ?;
616626 }
617627 }
618628
619- shell. status ( "Adding" , message) ?;
620-
621629 Ok ( ( ) )
622630}
623631
0 commit comments