Explorar o código

progress bar: don't strings.Repeat a negative number

Docker-DCO-1.1-Signed-off-by: Vincent Batts <vbatts@redhat.com> (github: vbatts)
Vincent Batts %!s(int64=11) %!d(string=hai) anos
pai
achega
77237be0e2
Modificáronse 1 ficheiros con 6 adicións e 1 borrados
  1. 6 1
      utils/jsonmessage.go

+ 6 - 1
utils/jsonmessage.go

@@ -50,7 +50,12 @@ func (p *JSONProgress) String() string {
 	total := units.HumanSize(int64(p.Total))
 	total := units.HumanSize(int64(p.Total))
 	percentage := int(float64(p.Current)/float64(p.Total)*100) / 2
 	percentage := int(float64(p.Current)/float64(p.Total)*100) / 2
 	if width > 110 {
 	if width > 110 {
-		pbBox = fmt.Sprintf("[%s>%s] ", strings.Repeat("=", percentage), strings.Repeat(" ", 50-percentage))
+		// this number can't be negetive gh#7136
+		numSpaces := 0
+		if 50-percentage > 0 {
+			numSpaces = 50 - percentage
+		}
+		pbBox = fmt.Sprintf("[%s>%s] ", strings.Repeat("=", percentage), strings.Repeat(" ", numSpaces))
 	}
 	}
 	numbersBox = fmt.Sprintf("%8v/%v", current, total)
 	numbersBox = fmt.Sprintf("%8v/%v", current, total)