1
0
mirror of https://github.com/taigrr/wtf synced 2025-01-18 04:03:14 -08:00
wtf/modules/docker/utils.go
2019-09-03 17:33:51 +02:00

30 lines
529 B
Go

package docker
import (
"fmt"
"math"
"reflect"
"strconv"
)
func padSlice(padLeft bool, slice interface{}, getter func(i int) string, setter func(i int, newVal string)) {
rv := reflect.ValueOf(slice)
length := rv.Len()
maxLen := 0
for i := 0; i < length; i++ {
val := getter(i)
maxLen = int(math.Max(float64(len(val)), float64(maxLen)))
}
sign := "-"
if padLeft {
sign = ""
}
for i := 0; i < length; i++ {
val := getter(i)
val = fmt.Sprintf("%"+sign+strconv.Itoa(maxLen)+"s", val)
setter(i, val)
}
}