Skip to content

Commit dda04ec

Browse files
committed
kube-tmux: support colour
1 parent 5f8f2cd commit dda04ec

File tree

1 file changed

+71
-3
lines changed

1 file changed

+71
-3
lines changed

main.go

+71-3
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
package main
66

77
import (
8+
"flag"
89
"fmt"
910
"os"
1011
"text/template"
@@ -25,7 +26,29 @@ type kubeContext struct {
2526
Namespace string
2627
}
2728

29+
var (
30+
ctxFg string
31+
ctxBg string
32+
sepFg string
33+
sepBg string
34+
nsFg string
35+
nsBg string
36+
separator string
37+
)
38+
39+
func init() {
40+
flag.StringVar(&ctxFg, "ctxFg", "", "Context foreground colour")
41+
flag.StringVar(&ctxBg, "ctxBg", "", "Context background colour")
42+
flag.StringVar(&sepFg, "sepFg", "", "Separator foreground colour")
43+
flag.StringVar(&sepBg, "sepBg", "", "Separator background colour")
44+
flag.StringVar(&nsFg, "nsFg", "", "Nasespace foreground colour")
45+
flag.StringVar(&nsBg, "nsBg", "", "Nasespace background colour")
46+
flag.StringVar(&separator, "separator", defaultSepalater, "Separator of Context and Nasespace")
47+
}
48+
2849
func main() {
50+
flag.Parse()
51+
2952
loadingRules := clientcmd.NewDefaultClientConfigLoadingRules()
3053
configOverrides := &clientcmd.ConfigOverrides{}
3154
kubeConfig := clientcmd.NewNonInteractiveDeferredLoadingClientConfig(loadingRules, configOverrides)
@@ -61,9 +84,54 @@ func main() {
6184
}
6285
kctx.Namespace = curNs
6386

64-
format := defaultformat
65-
if len(os.Args) > 1 {
66-
format = os.Args[1]
87+
var format string
88+
switch {
89+
case flag.CommandLine.NArg() > 1:
90+
format = flag.CommandLine.Arg(0)
91+
default:
92+
// TODO(zchee): refactoring
93+
if ctxFg != "" || ctxBg != "" {
94+
format = "#["
95+
}
96+
if ctxFg != "" {
97+
format += "fg=" + ctxFg
98+
}
99+
if ctxBg != "" {
100+
format += ",bg=" + ctxBg
101+
}
102+
if ctxFg != "" || ctxBg != "" {
103+
format += "]"
104+
}
105+
format += defaultContextFormat
106+
107+
if sepFg != "" || sepBg != "" {
108+
format += "#["
109+
}
110+
if sepFg != "" {
111+
format += "fg=" + sepFg
112+
}
113+
if sepBg != "" {
114+
format += ",bg=" + sepBg
115+
}
116+
if sepFg != "" || sepBg != "" {
117+
format += "]"
118+
}
119+
format += separator
120+
121+
if nsFg != "" || nsBg != "" {
122+
format += "#["
123+
}
124+
if nsFg != "" {
125+
format += "fg=" + nsFg
126+
}
127+
if nsBg != "" {
128+
format += ",bg=" + nsBg
129+
}
130+
if nsFg != "" || nsBg != "" {
131+
format += "]"
132+
}
133+
format += defaultNamespaceFormat
134+
format += "#[fg=default#,bg=default]"
67135
}
68136

69137
if err := printContext(kctx, format); err != nil {

0 commit comments

Comments
 (0)