-
Notifications
You must be signed in to change notification settings - Fork 15
/
kube_env.go
36 lines (31 loc) · 1017 Bytes
/
kube_env.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
package kubernetes
import (
"fmt"
"github.com/c-bata/go-prompt"
"github.com/fenixsoft/fenix-cli/src/environments"
"github.com/fenixsoft/fenix-cli/src/environments/kubernetes/kube"
"github.com/fenixsoft/fenix-cli/src/internal/krew"
)
var Completer *kube.Completer
//wrapper for kubernetes completer changed (while namespace change)
func Complete(d prompt.Document) []prompt.Suggest {
return Completer.Complete(d)
}
func RegisterEnv() (*environments.Runtime, error) {
if c, err := kube.NewCompleter(); err != nil {
return nil, err
} else {
Completer = c
Completer.KubernetesRuntime = &environments.Runtime{
Prefix: "kubectl",
Completer: Complete,
Executor: environments.GetDefaultExecutor("kubectl", nil, krew.GetBinPath()...),
Commands: ExtraCommands,
MainSuggestion: kube.Commands,
LivePrefix: func() (prefix string, useLivePrefix bool) {
return fmt.Sprintf("%v > kubectl ", c.Namespace), true
},
}
return Completer.KubernetesRuntime, nil
}
}