github.com/cloudfoundry-attic/ltc@v0.0.0-20151123212628-098adc7919fc/app_examiner/command_factory/presentation/presentation.go (about) 1 package presentation 2 3 import ( 4 "fmt" 5 "strings" 6 7 "github.com/cloudfoundry-incubator/ltc/app_examiner" 8 "github.com/cloudfoundry-incubator/ltc/terminal/colors" 9 "github.com/cloudfoundry-incubator/receptor" 10 ) 11 12 func ColorInstanceState(instanceInfo app_examiner.InstanceInfo) string { 13 colorFunc := colors.NoColor 14 15 state := receptor.ActualLRPState(instanceInfo.State) 16 switch { 17 case state == receptor.ActualLRPStateRunning: 18 colorFunc = colors.Green 19 case state == receptor.ActualLRPStateClaimed: 20 colorFunc = colors.Yellow 21 case state == receptor.ActualLRPStateUnclaimed && instanceInfo.PlacementError == "": 22 colorFunc = colors.Cyan 23 case state == receptor.ActualLRPStateUnclaimed && instanceInfo.PlacementError != "": 24 colorFunc = colors.Red 25 case state == receptor.ActualLRPStateInvalid: 26 colorFunc = colors.Red 27 case state == receptor.ActualLRPStateCrashed: 28 colorFunc = colors.Red 29 } 30 31 return colorFunc(string(instanceInfo.State)) 32 } 33 34 func PadAndColorInstanceState(instanceInfo app_examiner.InstanceInfo) string { 35 padLength := 0 36 if len(ColorInstanceState(instanceInfo)) < len(colors.NoColor("UNCLAIMED")) { 37 padLength = len("UNCLAIMED") - len(instanceInfo.State) 38 } 39 40 return fmt.Sprintf("%s%s", ColorInstanceState(instanceInfo), strings.Repeat(" ", padLength)) 41 }