diff options
| author | navewindre <boneyaard@gmail.com> | 2025-07-13 06:42:05 +0200 |
|---|---|---|
| committer | navewindre <boneyaard@gmail.com> | 2025-07-13 06:42:05 +0200 |
| commit | 02f14a9cb152561a5e44062aac79f3b700403b40 (patch) | |
| tree | 2db8ebda3b7f6f8777783aeb5c60018e6e1359d8 /home/.oh-my-zsh/plugins/kubectx | |
| parent | cbbdeb2f6b40a102a829f0c47cff052937231f00 (diff) | |
omz
Diffstat (limited to 'home/.oh-my-zsh/plugins/kubectx')
| -rw-r--r-- | home/.oh-my-zsh/plugins/kubectx/README.md | 56 | ||||
| -rw-r--r-- | home/.oh-my-zsh/plugins/kubectx/kubectx.plugin.zsh | 15 | ||||
| -rw-r--r-- | home/.oh-my-zsh/plugins/kubectx/prod.png | bin | 0 -> 3834 bytes | |||
| -rw-r--r-- | home/.oh-my-zsh/plugins/kubectx/stage.png | bin | 0 -> 3829 bytes |
4 files changed, 71 insertions, 0 deletions
diff --git a/home/.oh-my-zsh/plugins/kubectx/README.md b/home/.oh-my-zsh/plugins/kubectx/README.md new file mode 100644 index 0000000..e3987b4 --- /dev/null +++ b/home/.oh-my-zsh/plugins/kubectx/README.md @@ -0,0 +1,56 @@ +# kubectx - show active kubectl context + +This plugins adds `kubectx_prompt_info()` function. It shows name of the active +kubectl context (`kubectl config current-context`). + +You can use it to customize prompt and know if You are on prod cluster ;) + +To use this plugin, add `kubectx` to the plugins array in your zshrc file: + +```zsh +plugins=(... kubectx) +``` + +### Usage + +Add to **.zshrc**: + +```zsh +# right prompt +RPS1='$(kubectx_prompt_info)' +# left prompt +PROMPT="$PROMPT"'$(kubectx_prompt_info)' +``` + +### Custom context names + +You can rename the default context name for better readability or additional formatting. +These values accept [prompt expansion sequences](http://zsh.sourceforge.net/Doc/Release/Prompt-Expansion.html) +such as `%F{color}`, `%f`, `%K{color}`, `%k`, `%B`, `%b`, `%U`, `%u`, `%S`, `%s`, `%{...%}`. + +**Example**: add this to your .zshrc file: + +```zsh +kubectx_mapping[minikube]="mini" +kubectx_mapping[context_name_from_kubeconfig]="$emoji[wolf_face]" +kubectx_mapping[production_cluster]="%{$fg[yellow]%}prod!%{$reset_color%}" +# contexts with spaces +kubectx_mapping[context\ with\ spaces]="%F{red}spaces%f" +# don't use quotes as it will break the prompt +kubectx_mapping["context with spaces"]="%F{red}spaces%f" # ti +``` + +You can also define the whole mapping array at once: + +```zsh +typeset -A kubectx_mapping +kubectx_mapping=( + minikube "mini" + context_name_from_kubeconfig "$emoji[wolf_face]" + production_cluster "%{$fg[yellow]%}prod!%{$reset_color%}" + "context with spaces" "%F{red}spaces%f" +) +``` + + + diff --git a/home/.oh-my-zsh/plugins/kubectx/kubectx.plugin.zsh b/home/.oh-my-zsh/plugins/kubectx/kubectx.plugin.zsh new file mode 100644 index 0000000..f1ca990 --- /dev/null +++ b/home/.oh-my-zsh/plugins/kubectx/kubectx.plugin.zsh @@ -0,0 +1,15 @@ +typeset -g -A kubectx_mapping + +function kubectx_prompt_info() { + (( $+commands[kubectl] )) || return + + local current_ctx=$(kubectl config current-context 2> /dev/null) + + [[ -n "$current_ctx" ]] || return + + # Use value in associative array if it exists, otherwise fall back to the context name + # + # Note: we need to escape the % character in the prompt string when coming directly from + # the context name, as it could contain a % character. + echo "${kubectx_mapping[$current_ctx]:-${current_ctx:gs/%/%%}}" +} diff --git a/home/.oh-my-zsh/plugins/kubectx/prod.png b/home/.oh-my-zsh/plugins/kubectx/prod.png Binary files differnew file mode 100644 index 0000000..0c194a6 --- /dev/null +++ b/home/.oh-my-zsh/plugins/kubectx/prod.png diff --git a/home/.oh-my-zsh/plugins/kubectx/stage.png b/home/.oh-my-zsh/plugins/kubectx/stage.png Binary files differnew file mode 100644 index 0000000..ac15b39 --- /dev/null +++ b/home/.oh-my-zsh/plugins/kubectx/stage.png |
