package formatter import ( "fmt" "os" "strings" "time" "github.com/docker/cli/cli/command/formatter" "github.com/docker/go-units" "github.com/olekukonko/tablewriter" ) func ShortenID(str string) string { return str[:12] } func Truncate(str string) string { return fmt.Sprintf(`"%s"`, formatter.Ellipsis(str, 19)) } // RemoveSha remove image sha from a string that are added in some docker outputs func RemoveSha(str string) string { return strings.Split(str, "@")[0] } // HumanDuration from docker/cli RunningFor() to be accessible outside of the class func HumanDuration(timestamp int64) string { date := time.Unix(timestamp, 0) now := time.Now().UTC() return units.HumanDuration(now.Sub(date)) + " ago" } func CreateTable(columns []string) *tablewriter.Table { table := tablewriter.NewWriter(os.Stdout) table.SetHeader(columns) // Settings to create very bare tab padded table table.SetAutoWrapText(false) table.SetAutoFormatHeaders(true) table.SetHeaderAlignment(tablewriter.ALIGN_LEFT) table.SetAlignment(tablewriter.ALIGN_LEFT) table.SetCenterSeparator("") table.SetColumnSeparator("") table.SetRowSeparator("") table.SetHeaderLine(false) table.SetBorder(false) table.SetTablePadding("\t") // pad with tabs table.SetNoWhiteSpace(true) table.SetColWidth(1) return table }