@@ -795,6 +795,11 @@ async fn default_(
795
795
async fn check_updates ( cfg : & Cfg < ' _ > , opts : CheckOpts ) -> Result < utils:: ExitCode > {
796
796
let t = cfg. process . stdout ( ) . terminal ( cfg. process ) ;
797
797
let is_a_tty = t. is_a_tty ( ) ;
798
+ let use_colors = match cfg. process . var ( "RUSTUP_TERM_COLOR" ) . as_deref ( ) {
799
+ Ok ( "always" ) => true ,
800
+ Ok ( "never" ) => false ,
801
+ _ => is_a_tty,
802
+ } ;
798
803
let mut update_available = false ;
799
804
let channels = cfg. list_channels ( ) ?;
800
805
let num_channels = channels. len ( ) ;
@@ -825,25 +830,38 @@ async fn check_updates(cfg: &Cfg<'_>, opts: CheckOpts) -> Result<utils::ExitCode
825
830
let dist_version = distributable. show_dist_version ( ) . await ?;
826
831
let mut update_a = false ;
827
832
828
- let styled_name = style ( format ! ( "{name} - " ) ) . bold ( ) ;
833
+ let mut styled_name = style ( format ! ( "{name} - " ) ) ;
834
+ if use_colors {
835
+ styled_name = styled_name. bold ( ) ;
836
+ }
829
837
let message = match ( current_version, dist_version) {
830
838
( None , None ) => {
831
- let m = style ( "Cannot identify installed or update versions" )
832
- . red ( )
833
- . bold ( ) ;
839
+ let mut m = style ( "Cannot identify installed or update versions" ) ;
840
+ if use_colors {
841
+ m = m. red ( ) . bold ( ) ;
842
+ }
834
843
format ! ( "{styled_name}{m}" )
835
844
}
836
845
( Some ( cv) , None ) => {
837
- let m = style ( "Up to date" ) . green ( ) . bold ( ) ;
846
+ let mut m = style ( "Up to date" ) ;
847
+ if use_colors {
848
+ m = m. green ( ) . bold ( ) ;
849
+ }
838
850
format ! ( "{styled_name}{m} : {cv}" )
839
851
}
840
852
( Some ( cv) , Some ( dv) ) => {
841
- let m = style ( "Update available" ) . yellow ( ) . bold ( ) ;
853
+ let mut m = style ( "Update available" ) ;
854
+ if use_colors {
855
+ m = m. yellow ( ) . bold ( ) ;
856
+ }
842
857
update_a = true ;
843
858
format ! ( "{styled_name}{m} : {cv} -> {dv}" )
844
859
}
845
860
( None , Some ( dv) ) => {
846
- let m = style ( "Update available" ) . yellow ( ) . bold ( ) ;
861
+ let mut m = style ( "Update available" ) ;
862
+ if use_colors {
863
+ m = m. yellow ( ) . bold ( ) ;
864
+ }
847
865
update_a = true ;
848
866
format ! ( "{styled_name}{m} : (Unknown version) -> {dv}" )
849
867
}
0 commit comments