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  }