package cli 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 accessable 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 }