github.com/wtfutil/wtf@v0.43.0/modules/docker/utils.go (about) 1 package docker 2 3 import ( 4 "fmt" 5 "math" 6 "reflect" 7 "strconv" 8 ) 9 10 func padSlice(padLeft bool, slice interface{}, getter func(i int) string, setter func(i int, newVal string)) { 11 rv := reflect.ValueOf(slice) 12 length := rv.Len() 13 maxLen := 0 14 for i := 0; i < length; i++ { 15 val := getter(i) 16 maxLen = int(math.Max(float64(len(val)), float64(maxLen))) 17 } 18 19 sign := "-" 20 if padLeft { 21 sign = "" 22 } 23 24 for i := 0; i < length; i++ { 25 val := getter(i) 26 val = fmt.Sprintf("%"+sign+strconv.Itoa(maxLen)+"s", val) 27 setter(i, val) 28 } 29 }