@@ -494,54 +494,35 @@ defmodule Hex.RemoteConverger do
494494 end )
495495 end
496496
497- defp print_status ( nil , advisories , mod , name , previous_version , version , warning ) do
498- case mod do
499- :new ->
500- Hex.Shell . info ( Hex.Shell . format ( [ :green , " #{ name } #{ version } " , :red , "#{ warning } " ] ) )
501-
502- :eq ->
503- Hex.Shell . info ( " #{ name } #{ version } " )
504-
505- :lt ->
506- Hex.Shell . info (
507- Hex.Shell . format ( [
508- :yellow ,
509- " #{ name } #{ previous_version } => #{ version } " ,
510- :red ,
511- "#{ warning } "
512- ] )
513- )
514-
515- :gt ->
516- Hex.Shell . info (
517- Hex.Shell . format ( [
518- :green ,
519- " #{ name } #{ previous_version } => #{ version } " ,
520- :red ,
521- "#{ warning } "
522- ] )
523- )
524- end
525-
526- print_advisories ( version_string ( mod , name , previous_version , version ) , advisories )
527- end
528-
529- defp print_status ( retired , advisories , mod , name , previous_version , version , _warning ) do
530- version_string = version_string ( mod , name , previous_version , version )
497+ defp print_status ( retired , advisories , mod , name , previous_version , version , warning ) do
498+ version_str = version_string ( mod , name , previous_version , version )
499+ version_color = if mod in [ :new , :gt ] , do: :green , else: if ( mod == :lt , do: :yellow , else: [ ] )
500+
501+ line =
502+ [ version_color , version_str , :reset ]
503+ |> then ( fn
504+ acc when is_nil ( retired ) -> acc
505+ acc -> [ acc , :yellow , " RETIRED!" , :reset ]
506+ end )
507+ |> then ( fn
508+ acc when advisories == [ ] -> acc
509+ acc -> [ acc , :red , " VULNERABLE!" , :reset ]
510+ end )
511+ |> then ( fn
512+ acc when is_nil ( warning ) -> acc
513+ acc -> [ acc , :red , warning , :reset ]
514+ end )
531515
532- Hex.Shell . warn ( "#{ version_string } RETIRED!" )
533- Hex.Shell . warn ( " #{ Hex.Utils . package_retirement_message ( retired ) } " )
516+ Hex.Shell . info ( Hex.Shell . format ( line ) )
534517
535- print_advisories ( version_string , advisories )
536- end
518+ if retired do
519+ Hex.Shell . warn ( " #{ Hex.Utils . package_retirement_message ( retired ) } " )
520+ end
537521
538- defp print_advisories ( version_string , advisories ) do
539522 Enum . each ( advisories , fn advisory ->
540523 Hex.Shell . info (
541- Hex.Shell . format ( [ :yellow , " #{ version_string } has a security advisory!" , :reset ] )
524+ Hex.Shell . format ( [ " " | Hex.Utils . format_advisory_ansi ( advisory , " " ) ] )
542525 )
543-
544- Hex.Shell . info ( Hex.Shell . format ( [ " " | Hex.Utils . format_advisory_ansi ( advisory ) ] ) )
545526 end )
546527 end
547528
0 commit comments