From ba1276e9c8db134745b406a2d124cca1702f1d82 Mon Sep 17 00:00:00 2001 From: oGre Date: Thu, 1 Oct 2015 21:56:14 +0200 Subject: [PATCH 1/3] Honor VIRTUAL_ENV_DISABLE_PROMPT, if it is set to non-empty string --- gitprompt.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gitprompt.sh b/gitprompt.sh index 00a79c2..a08cde4 100755 --- a/gitprompt.sh +++ b/gitprompt.sh @@ -273,7 +273,7 @@ function git_prompt_config() { EMPTY_PROMPT="$OLD_GITPROMPT" else local ps="" - if [[ -n "$VIRTUAL_ENV" ]]; then + if [[ -n "$VIRTUAL_ENV" && -z "${VIRTUAL_ENV_DISABLE_PROMPT-}" ]]; then VENV=$(basename "${VIRTUAL_ENV}") ps="${ps}${GIT_PROMPT_VIRTUALENV//_VIRTUALENV_/${VENV}}" fi From 26bd9fb35400e9ec1d7f30a2e8fd1a947c858850 Mon Sep 17 00:00:00 2001 From: oGre Date: Fri, 2 Oct 2015 07:10:33 +0200 Subject: [PATCH 2/3] Honor VIRTUAL_ENV_DISABLE_PROMPT in updatePrompt as well --- gitprompt.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gitprompt.sh b/gitprompt.sh index a08cde4..82f1a74 100755 --- a/gitprompt.sh +++ b/gitprompt.sh @@ -501,7 +501,7 @@ function updatePrompt() { __add_status "$ResetColor$GIT_PROMPT_SUFFIX" NEW_PROMPT="" - if [[ -n "$VIRTUAL_ENV" ]]; then + if [[ -n "$VIRTUAL_ENV" && -z "${VIRTUAL_ENV_DISABLE_PROMPT-}" ]]; then VENV=$(basename "${VIRTUAL_ENV}") NEW_PROMPT="$NEW_PROMPT${GIT_PROMPT_VIRTUALENV//_VIRTUALENV_/${VENV}}" fi From 149efc1331bd7d657f8ce40ffda10ff8da50d048 Mon Sep 17 00:00:00 2001 From: oGre Date: Fri, 2 Oct 2015 08:33:20 +0200 Subject: [PATCH 3/3] Virtualenv information duplicated code moved to helper function --- gitprompt.sh | 40 ++++++++++++++++++---------------------- 1 file changed, 18 insertions(+), 22 deletions(-) diff --git a/gitprompt.sh b/gitprompt.sh index 82f1a74..4a5f30a 100755 --- a/gitprompt.sh +++ b/gitprompt.sh @@ -272,16 +272,7 @@ function git_prompt_config() { if [[ "$GIT_PROMPT_ONLY_IN_REPO" = 1 ]]; then EMPTY_PROMPT="$OLD_GITPROMPT" else - local ps="" - if [[ -n "$VIRTUAL_ENV" && -z "${VIRTUAL_ENV_DISABLE_PROMPT-}" ]]; then - VENV=$(basename "${VIRTUAL_ENV}") - ps="${ps}${GIT_PROMPT_VIRTUALENV//_VIRTUALENV_/${VENV}}" - fi - if [[ -n "$CONDA_DEFAULT_ENV" ]]; then - VENV=$(basename "${CONDA_DEFAULT_ENV}") - ps="${ps}${GIT_PROMPT_VIRTUALENV//_VIRTUALENV_/${VENV}}" - fi - ps="$ps$PROMPT_START$($prompt_callback)$PROMPT_END" + local ps="$(gp_add_virtualenv_to_prompt)$PROMPT_START$($prompt_callback)$PROMPT_END" EMPTY_PROMPT="${ps//_LAST_COMMAND_INDICATOR_/${LAST_COMMAND_INDICATOR}}" fi @@ -500,18 +491,7 @@ function updatePrompt() { __chk_gitvar_status 'CLEAN' '-eq 1' - __add_status "$ResetColor$GIT_PROMPT_SUFFIX" - NEW_PROMPT="" - if [[ -n "$VIRTUAL_ENV" && -z "${VIRTUAL_ENV_DISABLE_PROMPT-}" ]]; then - VENV=$(basename "${VIRTUAL_ENV}") - NEW_PROMPT="$NEW_PROMPT${GIT_PROMPT_VIRTUALENV//_VIRTUALENV_/${VENV}}" - fi - - if [[ -n "$CONDA_DEFAULT_ENV" ]]; then - VENV=$(basename "${CONDA_DEFAULT_ENV}") - NEW_PROMPT="$NEW_PROMPT${GIT_PROMPT_VIRTUALENV//_VIRTUALENV_/${VENV}}" - fi - - NEW_PROMPT="$NEW_PROMPT$PROMPT_START$($prompt_callback)$STATUS$PROMPT_END" + NEW_PROMPT="$(gp_add_virtualenv_to_prompt)$PROMPT_START$($prompt_callback)$STATUS$PROMPT_END" else NEW_PROMPT="$EMPTY_PROMPT" fi @@ -519,6 +499,22 @@ function updatePrompt() { PS1="${NEW_PROMPT//_LAST_COMMAND_INDICATOR_/${LAST_COMMAND_INDICATOR}}" } +# Helper function that returns virtual env information to be set in prompt +# Honors virtualenvs own setting VIRTUAL_ENV_DISABLE_PROMPT +function gp_add_virtualenv_to_prompt { + local ACCUMULATED_VENV_PROMPT="" + local VENV="" + if [[ -n "$VIRTUAL_ENV" && -z "${VIRTUAL_ENV_DISABLE_PROMPT-}" ]]; then + VENV=$(basename "${VIRTUAL_ENV}") + ACCUMULATED_VENV_PROMPT="${ACCUMULATED_VENV_PROMPT}${GIT_PROMPT_VIRTUALENV//_VIRTUALENV_/${VENV}}" + fi + if [[ -n "$CONDA_DEFAULT_ENV" ]]; then + VENV=$(basename "${CONDA_DEFAULT_ENV}") + ACCUMULATED_VENV_PROMPT="${ACCUMULATED_VENV_PROMPT}${GIT_PROMPT_VIRTUALENV//_VIRTUALENV_/${VENV}}" + fi + echo "$ACCUMULATED_VENV_PROMPT" +} + # Use exit status from declare command to determine whether input argument is a # bash function function is_function {