75 lines
1.6 KiB
Go
75 lines
1.6 KiB
Go
|
// Copyright 2020 The Gitea Authors. All rights reserved.
|
||
|
// Use of this source code is governed by a MIT-style
|
||
|
// license that can be found in the LICENSE file.
|
||
|
|
||
|
package print
|
||
|
|
||
|
import (
|
||
|
"fmt"
|
||
|
"time"
|
||
|
|
||
|
"code.gitea.io/sdk/gitea"
|
||
|
"github.com/muesli/termenv"
|
||
|
)
|
||
|
|
||
|
// formatSize get kb in int and return string
|
||
|
func formatSize(kb int64) string {
|
||
|
if kb < 1024 {
|
||
|
return fmt.Sprintf("%d Kb", kb)
|
||
|
}
|
||
|
mb := kb / 1024
|
||
|
if mb < 1024 {
|
||
|
return fmt.Sprintf("%d Mb", mb)
|
||
|
}
|
||
|
gb := mb / 1024
|
||
|
if gb < 1024 {
|
||
|
return fmt.Sprintf("%d Gb", gb)
|
||
|
}
|
||
|
return fmt.Sprintf("%d Tb", gb/1024)
|
||
|
}
|
||
|
|
||
|
// FormatTime give a date-time in local timezone if available
|
||
|
func FormatTime(t time.Time) string {
|
||
|
location, err := time.LoadLocation("Local")
|
||
|
if err != nil {
|
||
|
return t.Format("2006-01-02 15:04 UTC")
|
||
|
}
|
||
|
return t.In(location).Format("2006-01-02 15:04")
|
||
|
}
|
||
|
|
||
|
func formatDuration(seconds int64, outputType string) string {
|
||
|
if isMachineReadable(outputType) {
|
||
|
return fmt.Sprint(seconds)
|
||
|
}
|
||
|
return time.Duration(1e9 * seconds).String()
|
||
|
}
|
||
|
|
||
|
func formatLabel(label *gitea.Label, allowColor bool, text string) string {
|
||
|
colorProfile := termenv.Ascii
|
||
|
if allowColor {
|
||
|
colorProfile = termenv.EnvColorProfile()
|
||
|
}
|
||
|
if len(text) == 0 {
|
||
|
text = label.Name
|
||
|
}
|
||
|
styled := termenv.String(text)
|
||
|
styled = styled.Foreground(colorProfile.Color("#" + label.Color))
|
||
|
return fmt.Sprint(styled)
|
||
|
}
|
||
|
|
||
|
func formatPermission(p *gitea.Permission) string {
|
||
|
if p.Admin {
|
||
|
return "admin"
|
||
|
} else if p.Push {
|
||
|
return "write"
|
||
|
}
|
||
|
return "read"
|
||
|
}
|
||
|
|
||
|
func formatUserName(u *gitea.User) string {
|
||
|
if len(u.FullName) == 0 {
|
||
|
return u.UserName
|
||
|
}
|
||
|
return u.FullName
|
||
|
}
|