Diff
1diff --git a/plugins/kube-ps1/README.md b/plugins/kube-ps1/README.md
2index b08997b0f03af69cec49768ed98450c106ef060e..1ed3e4438d16e7f304d4cf24cd8045f49635feaa 100644
3--- a/plugins/kube-ps1/README.md
4+++ b/plugins/kube-ps1/README.md
5@@ -128,6 +128,7 @@ the following environment variables:
6 | `KUBE_PS1_NS_ENABLE` | `true` | Display the namespace. If set to `false`, this will also disable `KUBE_PS1_DIVIDER` |
7 | `KUBE_PS1_PREFIX` | `(` | Prompt opening character |
8 | `KUBE_PS1_SYMBOL_ENABLE` | `true ` | Display the prompt Symbol. If set to `false`, this will also disable `KUBE_PS1_SEPARATOR` |
9+| `KUBE_PS1_SYMBOL_PADDING` | `false` | Adds a space (padding) after the symbol to prevent clobbering prompt characters |
10 | `KUBE_PS1_SYMBOL_DEFAULT` | `⎈ ` | Default prompt symbol. Unicode `\u2388` |
11 | `KUBE_PS1_SYMBOL_USE_IMG` | `false` | ☸️ , Unicode `\u2638` as the prompt symbol |
12 | `KUBE_PS1_SEPARATOR` | | | Separator between symbol and context name |
13@@ -151,8 +152,10 @@ The default colors are set with the following environment variables:
14
15 | Variable | Default | Meaning |
16 | :------- | :-----: | ------- |
17+| `KUBE_PS1_PREFIX_COLOR` | `null` | Set default color of the prompt prefix |
18 | `KUBE_PS1_SYMBOL_COLOR` | `blue` | Set default color of the Kubernetes symbol |
19 | `KUBE_PS1_CTX_COLOR` | `red` | Set default color of the context |
20+| `KUBE_PS1_SUFFIX_COLOR` | `null` | Set default color of the prompt suffix |
21 | `KUBE_PS1_NS_COLOR` | `cyan` | Set default color of the namespace |
22 | `KUBE_PS1_BG_COLOR` | `null` | Set default color of the prompt background |
23
24diff --git a/plugins/kube-ps1/kube-ps1.plugin.zsh b/plugins/kube-ps1/kube-ps1.plugin.zsh
25index 9e77cbc1908a506b572ed2a8f621a2acff48ff44..894e0f7f04d3183a7507f2b126aa3a346ff1d54c 100644
26--- a/plugins/kube-ps1/kube-ps1.plugin.zsh
27+++ b/plugins/kube-ps1/kube-ps1.plugin.zsh
28@@ -1,9 +1,9 @@
29-#!/bin/bash
30+#!/usr/bin/env bash
31
32 # Kubernetes prompt helper for bash/zsh
33 # Displays current context and namespace
34
35-# Copyright 2019 Jon Mosco
36+# Copyright 2021 Jon Mosco
37 #
38 # Licensed under the Apache License, Version 2.0 (the "License");
39 # you may not use this file except in compliance with the License.
40@@ -24,7 +24,8 @@
41 # Override these values in ~/.zshrc or ~/.bashrc
42 KUBE_PS1_BINARY="${KUBE_PS1_BINARY:-kubectl}"
43 KUBE_PS1_SYMBOL_ENABLE="${KUBE_PS1_SYMBOL_ENABLE:-true}"
44-KUBE_PS1_SYMBOL_DEFAULT=${KUBE_PS1_SYMBOL_DEFAULT:-$'\u2388 '}
45+KUBE_PS1_SYMBOL_DEFAULT=${KUBE_PS1_SYMBOL_DEFAULT:-$'\u2388'}
46+KUBE_PS1_SYMBOL_PADDING="${KUBE_PS1_SYMBOL_PADDING:-false}"
47 KUBE_PS1_SYMBOL_USE_IMG="${KUBE_PS1_SYMBOL_USE_IMG:-false}"
48 KUBE_PS1_NS_ENABLE="${KUBE_PS1_NS_ENABLE:-true}"
49 KUBE_PS1_CONTEXT_ENABLE="${KUBE_PS1_CONTEXT_ENABLE:-true}"
50@@ -32,10 +33,12 @@ KUBE_PS1_PREFIX="${KUBE_PS1_PREFIX-(}"
51 KUBE_PS1_SEPARATOR="${KUBE_PS1_SEPARATOR-|}"
52 KUBE_PS1_DIVIDER="${KUBE_PS1_DIVIDER-:}"
53 KUBE_PS1_SUFFIX="${KUBE_PS1_SUFFIX-)}"
54+
55 KUBE_PS1_SYMBOL_COLOR="${KUBE_PS1_SYMBOL_COLOR-blue}"
56 KUBE_PS1_CTX_COLOR="${KUBE_PS1_CTX_COLOR-red}"
57 KUBE_PS1_NS_COLOR="${KUBE_PS1_NS_COLOR-cyan}"
58 KUBE_PS1_BG_COLOR="${KUBE_PS1_BG_COLOR}"
59+
60 KUBE_PS1_KUBECONFIG_CACHE="${KUBECONFIG}"
61 KUBE_PS1_DISABLE_PATH="${HOME}/.kube/kube-ps1/disabled"
62 KUBE_PS1_LAST_TIME=0
63@@ -149,18 +152,17 @@ _kube_ps1_symbol() {
64
65 case "${KUBE_PS1_SHELL}" in
66 bash)
67- if ((BASH_VERSINFO[0] >= 4)) && [[ $'\u2388 ' != "\\u2388 " ]]; then
68+ if ((BASH_VERSINFO[0] >= 4)) && [[ $'\u2388' != "\\u2388" ]]; then
69 KUBE_PS1_SYMBOL="${KUBE_PS1_SYMBOL_DEFAULT}"
70- # KUBE_PS1_SYMBOL=$'\u2388 '
71- KUBE_PS1_SYMBOL_IMG=$'\u2638 '
72+ KUBE_PS1_SYMBOL_IMG=$'\u2638\ufe0f'
73 else
74- KUBE_PS1_SYMBOL=$'\xE2\x8E\x88 '
75- KUBE_PS1_SYMBOL_IMG=$'\xE2\x98\xB8 '
76+ KUBE_PS1_SYMBOL=$'\xE2\x8E\x88'
77+ KUBE_PS1_SYMBOL_IMG=$'\xE2\x98\xB8'
78 fi
79 ;;
80 zsh)
81 KUBE_PS1_SYMBOL="${KUBE_PS1_SYMBOL_DEFAULT}"
82- KUBE_PS1_SYMBOL_IMG="\u2638 ";;
83+ KUBE_PS1_SYMBOL_IMG="\u2638";;
84 *)
85 KUBE_PS1_SYMBOL="k8s"
86 esac
87@@ -169,7 +171,12 @@ _kube_ps1_symbol() {
88 KUBE_PS1_SYMBOL="${KUBE_PS1_SYMBOL_IMG}"
89 fi
90
91- echo "${KUBE_PS1_SYMBOL}"
92+ if [[ "${KUBE_PS1_SYMBOL_PADDING}" == true ]]; then
93+ echo "${KUBE_PS1_SYMBOL} "
94+ else
95+ echo "${KUBE_PS1_SYMBOL}"
96+ fi
97+
98 }
99
100 _kube_ps1_split() {
101@@ -339,7 +346,11 @@ kube_ps1() {
102 [[ -n "${KUBE_PS1_BG_COLOR}" ]] && KUBE_PS1+="$(_kube_ps1_color_bg ${KUBE_PS1_BG_COLOR})"
103
104 # Prefix
105- [[ -n "${KUBE_PS1_PREFIX}" ]] && KUBE_PS1+="${KUBE_PS1_PREFIX}"
106+ if [[ -z "${KUBE_PS1_PREFIX_COLOR:-}" ]] && [[ -n "${KUBE_PS1_PREFIX}" ]]; then
107+ KUBE_PS1+="${KUBE_PS1_PREFIX}"
108+ else
109+ KUBE_PS1+="$(_kube_ps1_color_fg $KUBE_PS1_PREFIX_COLOR)${KUBE_PS1_PREFIX}${KUBE_PS1_RESET_COLOR}"
110+ fi
111
112 # Symbol
113 KUBE_PS1+="$(_kube_ps1_color_fg $KUBE_PS1_SYMBOL_COLOR)$(_kube_ps1_symbol)${KUBE_PS1_RESET_COLOR}"
114@@ -362,7 +373,11 @@ kube_ps1() {
115 fi
116
117 # Suffix
118- [[ -n "${KUBE_PS1_SUFFIX}" ]] && KUBE_PS1+="${KUBE_PS1_SUFFIX}"
119+ if [[ -z "${KUBE_PS1_SUFFIX_COLOR:-}" ]] && [[ -n "${KUBE_PS1_SUFFIX}" ]]; then
120+ KUBE_PS1+="${KUBE_PS1_SUFFIX}"
121+ else
122+ KUBE_PS1+="$(_kube_ps1_color_fg $KUBE_PS1_SUFFIX_COLOR)${KUBE_PS1_SUFFIX}${KUBE_PS1_RESET_COLOR}"
123+ fi
124
125 # Close Background color if defined
126 [[ -n "${KUBE_PS1_BG_COLOR}" ]] && KUBE_PS1+="${_KUBE_PS1_OPEN_ESC}${_KUBE_PS1_DEFAULT_BG}${_KUBE_PS1_CLOSE_ESC}"