Compare commits

...

4 Commits

Author SHA1 Message Date
Jérôme GARCIA b85ff17a49
Merge 9346c2418c into 1c34b0e67d 2025-01-30 19:22:05 +01:00
soemiran 1c34b0e67d
feat(terraform): support `TF_DATA_DIR` in `tf_prompt_info` (#12949) 2025-01-30 16:14:04 +01:00
sybernatus 9346c2418c
feat: add conditional formatting to agnoster
add conditional formatting for kubernetes to agnoster theme
2023-02-21 17:51:08 +01:00
alchazov 1fd41a3f8c Add KUBERNETES to prompt 2021-08-04 16:34:19 +05:00
2 changed files with 51 additions and 2 deletions

View File

@ -2,9 +2,9 @@ function tf_prompt_info() {
# dont show 'default' workspace in home dir
[[ "$PWD" != ~ ]] || return
# check if in terraform dir and file exists
[[ -d .terraform && -r .terraform/environment ]] || return
[[ -d "${TF_DATA_DIR:-.terraform}" && -r "${TF_DATA_DIR:-.terraform}/environment" ]] || return
local workspace="$(< .terraform/environment)"
local workspace="$(< "${TF_DATA_DIR:-.terraform}/environment")"
echo "${ZSH_THEME_TF_PROMPT_PREFIX-[}${workspace:gs/%/%%}${ZSH_THEME_TF_PROMPT_SUFFIX-]}"
}

View File

@ -254,6 +254,54 @@ prompt_aws() {
esac
}
#KUBERNETES icon:
# - display KUBERNETES icon if context set
# - displays red icon on black if context name contains 'prod'
# - displays green icon on black if context name contains 'dev' or 'stage'
# - displays yellow icon on black otherwise
prompt_kubernetes_icon() {
KUBERNETES_SYMBOL=$'\xE2\x8E\x88'
KUBERNETES_CONTEXT=$1
case "$KUBERNETES_CONTEXT" in
*prod*) prompt_segment black red "$KUBERNETES_SYMBOL";;
*dev*|*stage*) prompt_segment black green "$KUBERNETES_SYMBOL";;
*) prompt_segment black yellow "$KUBERNETES_SYMBOL";;
esac
}
#KUBERNETES context:
# - display current KUBERNETES context for connection
# - from file .kube/config or env $KUBECONFIG
# - displays kubernetes icon if $OMZ_THEME_AGNOSTER_KUBERNETES_ICON is not set to hidden
# - displays context name if $OMZ_THEME_AGNOSTER_KUBERNETES_CONTEXT is not set to hidden
# - displays namespace if $OMZ_THEME_AGNOSTER_KUBERNETES_NAMESPACE is not set to hidden
prompt_kubernetes() {
KUBERNETES_BINARY="${KUBERNETES_BINARY:-kubectl}"
[[ -z "$KUBECONFIG" && -z "$(${KUBERNETES_BINARY} config current-context 2>/dev/null)" ]] && return
KUBERNETES_PROMPT=""
if [[ "$OMZ_THEME_AGNOSTER_KUBERNETES_CONTEXT" != "hidden" ]]; then
KUBERNETES_CONTEXT="$(${KUBERNETES_BINARY} config current-context 2>/dev/null)"
KUBERNETES_CONTEXT="${KUBERNETES_CONTEXT:-N/A}"
KUBERNETES_PROMPT="$KUBERNETES_PROMPT$KUBERNETES_CONTEXT"
fi
if [[ "$OMZ_THEME_AGNOSTER_KUBERNETES_NAMESPACE" != "hidden" ]]; then
KUBERNETES_NAMESPACE="$(${KUBERNETES_BINARY} config view --minify -o jsonpath={..namespace} 2>/dev/null)"
KUBERNETES_NAMESPACE="${KUBERNETES_NAMESPACE:+ ns:$KUBERNETES_NAMESPACE}"
KUBERNETES_PROMPT="$KUBERNETES_PROMPT -$KUBERNETES_NAMESPACE"
fi
if [[ "$KUBERNETES_PROMPT" != "" ]]; then
if [[ "$OMZ_THEME_AGNOSTER_KUBERNETES_ICON" != "hidden" ]]; then
prompt_kubernetes_icon "$KUBERNETES_CONTEXT"
fi
prompt_segment $CURRENT_BG default "$KUBERNETES_PROMPT"
fi
}
## Main prompt
build_prompt() {
RETVAL=$?
@ -262,6 +310,7 @@ build_prompt() {
prompt_aws
prompt_context
prompt_dir
prompt_kubernetes
prompt_git
prompt_bzr
prompt_hg