k9s/internal/views/helpers.go

62 lines
1.2 KiB
Go

package views
import (
"path"
"strings"
"github.com/derailed/k9s/internal/config"
"golang.org/x/text/language"
"golang.org/x/text/message"
)
// FwFQN returns a fully qualified ns/name:container id.
func fwFQN(po, co string) string {
return po + ":" + co
}
func isTCPPort(p string) bool {
return !strings.Contains(p, "UDP")
}
// Namespaced converts an fqn resource name to ns and name.
func namespaced(n string) (string, string) {
ns, po := path.Split(n)
return strings.Trim(ns, "/"), po
}
// ContainerID computes container ID based on ns/po/co.
func containerID(path, co string) string {
ns, n := namespaced(path)
po := strings.Split(n, "-")[0]
return ns + "/" + po + ":" + co
}
// UrlFor computes fq url for a given benchmark configuration.
func urlFor(cfg config.BenchConfig, co, port string) string {
host := "localhost"
if cfg.HTTP.Host != "" {
host = cfg.HTTP.Host
}
path := "/"
if cfg.HTTP.Path != "" {
path = cfg.HTTP.Path
}
return "http://" + host + ":" + port + path
}
func fqn(ns, n string) string {
if ns == "" {
return n
}
return ns + "/" + n
}
// AsNumb prints a number with thousand separator.
func asNum(n int) string {
p := message.NewPrinter(language.English)
return p.Sprintf("%d", n)
}