5
5
package main
6
6
7
7
import (
8
+ "flag"
8
9
"fmt"
9
10
"os"
10
11
"text/template"
@@ -25,7 +26,29 @@ type kubeContext struct {
25
26
Namespace string
26
27
}
27
28
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
+
28
49
func main () {
50
+ flag .Parse ()
51
+
29
52
loadingRules := clientcmd .NewDefaultClientConfigLoadingRules ()
30
53
configOverrides := & clientcmd.ConfigOverrides {}
31
54
kubeConfig := clientcmd .NewNonInteractiveDeferredLoadingClientConfig (loadingRules , configOverrides )
@@ -61,9 +84,54 @@ func main() {
61
84
}
62
85
kctx .Namespace = curNs
63
86
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]"
67
135
}
68
136
69
137
if err := printContext (kctx , format ); err != nil {
0 commit comments