From b345f29f2fc6d9c80641663e344dfb05bf7a2b19 Mon Sep 17 00:00:00 2001 From: Sandy Rogers Date: Mon, 15 Jun 2015 12:15:22 +0100 Subject: [PATCH] Fix for the fact that realpath is not installed on OS X by default, so plugin would not work MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Issue was introduced by pull request #3918. This is a bit of a work-around for now (just checks if realpath is installed…) but at least the plugin works again! Better would be to install it, e.g. https://github.com/harto/realpath-osx --- .../virtualenvwrapper.plugin.zsh | 25 +++++++++++++------ 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh b/plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh index 9fd0d3d8f..5cdd0103d 100644 --- a/plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh +++ b/plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh @@ -36,14 +36,25 @@ if [[ ! $DISABLE_VENV_CD -eq 1 ]]; then function workon_cwd { if [ ! $WORKON_CWD ]; then WORKON_CWD=1 - # Check if this is a Git repo - PROJECT_ROOT=`pwd` - while [[ "$PROJECT_ROOT" != "/" && ! -e "$PROJECT_ROOT/.venv" ]]; do - PROJECT_ROOT=`realpath $PROJECT_ROOT/..` - done - if [[ "$PROJECT_ROOT" == "/" ]]; then - PROJECT_ROOT="." + + # Check whether realpath is installed (it isn't on a mac...) + if type "$realpath" > /dev/null; then + # If we have realpath, can auto switch virtualenv based on git name + # Check if this is a Git repo + PROJECT_ROOT=`pwd` + while [[ "$PROJECT_ROOT" != "/" && ! -e "$PROJECT_ROOT/.venv" ]]; do + PROJECT_ROOT=`realpath $PROJECT_ROOT/..` + done + if [[ "$PROJECT_ROOT" == "/" ]]; then + PROJECT_ROOT="." + fi + else + PROJECT_ROOT=`git rev-parse --show-toplevel 2> /dev/null` + if (( $? != 0 )); then + PROJECT_ROOT="." + fi fi + # Check for virtualenv name override if [[ -f "$PROJECT_ROOT/.venv" ]]; then ENV_NAME=`cat "$PROJECT_ROOT/.venv"`