From 936a79f6190e1d620d843b566d035d627c92b189 Mon Sep 17 00:00:00 2001 From: Ofir Shtrull Date: Thu, 27 Feb 2020 20:53:35 +0200 Subject: [PATCH] now usable by all prompts --- themes/base.theme.bash | 8 ++++++++ themes/powerline-multiline/README.md | 2 +- themes/powerline-naked/powerline-naked.base.bash | 9 +++++---- themes/powerline-naked/powerline-naked.theme.bash | 3 +++ themes/powerline-plain/README.md | 2 +- themes/powerline/README.md | 2 +- themes/powerline/powerline.base.bash | 9 +++++++++ 7 files changed, 28 insertions(+), 7 deletions(-) diff --git a/themes/base.theme.bash b/themes/base.theme.bash index d193191e..d5858018 100644 --- a/themes/base.theme.bash +++ b/themes/base.theme.bash @@ -155,6 +155,14 @@ function scm_prompt_info_common { { [[ ${SCM} == ${SCM_SVN} ]] && svn_prompt_info && return; } || true } +function terraform_workspace_prompt { + if _command_exists terraform ; then + if [ -d .terraform ]; then + echo -e "$(terraform workspace show 2>/dev/null)" + fi + fi +} + function git_prompt_minimal_info { SCM_STATE=${SCM_THEME_PROMPT_CLEAN} diff --git a/themes/powerline-multiline/README.md b/themes/powerline-multiline/README.md index 3debf1d3..f4a1fab8 100644 --- a/themes/powerline-multiline/README.md +++ b/themes/powerline-multiline/README.md @@ -60,6 +60,7 @@ The contents of both prompt sides can be "reordered", all the "segments" (every * `cwd` - Current working directory including full folder hierarchy (c.f. `wd`) * `hostname` - Host name of machine * `in_vim` - Show identifier if running in `:terminal` from vim +* `k8s_context` - Show current kubernetes context * `last_status` - Exit status of last run command * `python_venv` - Python virtual environment information (`virtualenv`, `venv` and `conda` supported) @@ -67,7 +68,6 @@ The contents of both prompt sides can be "reordered", all the "segments" (every * `node` - Current node version (only `nvm` is supported) * `scm` - Version control information, `git` * `terraform` - Current terraform workspace -* `k8s_context` - Show current kubernetes context * `user_info` - Current user * `wd` - Working directory, like `cwd` but doesn't show the full folder hierarchy, only the directory you're currently in. diff --git a/themes/powerline-naked/powerline-naked.base.bash b/themes/powerline-naked/powerline-naked.base.bash index 16b633be..d4a2e648 100644 --- a/themes/powerline-naked/powerline-naked.base.bash +++ b/themes/powerline-naked/powerline-naked.base.bash @@ -1,7 +1,8 @@ . "$BASH_IT/themes/powerline/powerline.base.bash" -function __powerline_left_segment { - local OLD_IFS="${IFS}"; IFS="|" +function __powerline_left_segment() { + local OLD_IFS="${IFS}" + IFS="|" local params=( $1 ) IFS="${OLD_IFS}" local separator="" @@ -25,9 +26,9 @@ function __powerline_left_segment { LEFT_PROMPT+="$(set_color ${params[1]} -)${pad_before_segment}${params[0]}${normal}" LAST_SEGMENT_COLOR=${params[1]} - (( SEGMENTS_AT_LEFT += 1 )) + ((SEGMENTS_AT_LEFT += 1)) } -function __powerline_left_last_segment_padding { +function __powerline_left_last_segment_padding() { LEFT_PROMPT+="$(set_color ${LAST_SEGMENT_COLOR} -) ${normal}" } diff --git a/themes/powerline-naked/powerline-naked.theme.bash b/themes/powerline-naked/powerline-naked.theme.bash index bf314aca..93127c44 100644 --- a/themes/powerline-naked/powerline-naked.theme.bash +++ b/themes/powerline-naked/powerline-naked.theme.bash @@ -17,6 +17,9 @@ USER_INFO_SSH_CHAR=${POWERLINE_USER_INFO_SSH_CHAR:=" "} USER_INFO_THEME_PROMPT_COLOR=${POWERLINE_USER_INFO_COLOR:=240} USER_INFO_THEME_PROMPT_COLOR_SUDO=${POWERLINE_USER_INFO_COLOR_SUDO:=202} +TERRAFORM_THEME_PROMPT_COLOR=${POWERLINE_TERRAFORM_COLOR:=161} +TERRAFORM_CHAR=${POWERLINE_TERRAFORM_CHAR:="❲t❳ "} + PYTHON_VENV_CHAR=${POWERLINE_PYTHON_VENV_CHAR:="❲p❳ "} CONDA_PYTHON_VENV_CHAR=${POWERLINE_CONDA_PYTHON_VENV_CHAR:="❲c❳ "} PYTHON_VENV_THEME_PROMPT_COLOR=${POWERLINE_PYTHON_VENV_COLOR:=35} diff --git a/themes/powerline-plain/README.md b/themes/powerline-plain/README.md index 7ccb1eeb..049c12f1 100644 --- a/themes/powerline-plain/README.md +++ b/themes/powerline-plain/README.md @@ -52,13 +52,13 @@ The contents of the prompt can be "reordered", all the "segments" (every piece o * `hostname` - Host name of machine * `in_vim` - Show identifier if running in `:terminal` from vim * `k8s_context` - Show current kubernetes context -* `terraform` - Current terraform workspace * `last_status` - Exit status of last run command * `python_venv` - Python virtual environment information (`virtualenv`, `venv` and `conda` supported) * `ruby` - Current ruby version if using `rvm` * `node` - Current node version (only `nvm` is supported) * `scm` - Version control information, `git` +* `terraform` - Current terraform workspace * `user_info` - Current user * `wd` - Working directory, like `cwd` but doesn't show the full folder hierarchy, only the directory you're currently in. diff --git a/themes/powerline/README.md b/themes/powerline/README.md index 5f0d69dd..587e0788 100644 --- a/themes/powerline/README.md +++ b/themes/powerline/README.md @@ -66,8 +66,8 @@ The contents of the prompt can be "reordered", all the "segments" (every piece o * `ruby` - Current ruby version if using `rvm` * `node` - Current node version (only `nvm` is supported) * `scm` - Version control information, `git` -* `user_info` - Current user * `terraform` - Current terraform workspace +* `user_info` - Current user * `wd` - Working directory, like `cwd` but doesn't show the full folder hierarchy, only the directory you're currently in. * `shlvl` - Show the current shell level (based on `SHLVL` environment variable), but only if you are not in root shell diff --git a/themes/powerline/powerline.base.bash b/themes/powerline/powerline.base.bash index 26fb0d3f..f9a6d0d5 100644 --- a/themes/powerline/powerline.base.bash +++ b/themes/powerline/powerline.base.bash @@ -50,6 +50,15 @@ function __powerline_terraform_prompt() { fi } +function __powerline_terraform_prompt() { + local terraform_workspace="" + + if [ -d .terraform ]; then + terraform_workspace="$(terraform_workspace_prompt)" + [[ -n "${terraform_workspace}" ]] && echo "${TERRAFORM_CHAR}${terraform_workspace}|${TERRAFORM_THEME_PROMPT_COLOR}" + fi +} + function __powerline_node_prompt { local node_version=""