From b1f41f6fa5fbfb9317704fa1416a8d081b4e2310 Mon Sep 17 00:00:00 2001 From: Matthew Robben Date: Thu, 6 Jun 2013 02:18:25 -0300 Subject: [PATCH 1/3] Update README.textile Add upgrade command to docs. I canceled the prompt once and went hunting for this so I could upgrade. --- README.textile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.textile b/README.textile index 5f8067499..1916d9f4e 100644 --- a/README.textile +++ b/README.textile @@ -72,6 +72,8 @@ To disable updates entirely, put this in your ~/.zshrc @DISABLE_AUTO_UPDATE=true@ +To upgrade directly from the command line, just run @upgrade_oh_my_zsh@ + h3. Uninstalling If you want to uninstall it, just run @uninstall_oh_my_zsh@ from the command line and it'll remove itself and revert you to bash (or your previous zsh config). From e73dd2cdf895879a3584eca3a475f33f72f48da8 Mon Sep 17 00:00:00 2001 From: Andrew Grangaard Date: Sat, 8 Jun 2013 11:25:52 -0700 Subject: [PATCH 2/3] virtualenvwrapper plugin cleanup * removes cd override by using chpwd_functions * removes subshell call to which by using $+commands array and c param expansion to find in PATH * zsh love! --- .../virtualenvwrapper.plugin.zsh | 25 +++++++++++-------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh b/plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh index 35de50874..670c287bd 100644 --- a/plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh +++ b/plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh @@ -1,10 +1,9 @@ -wrapsource=`which virtualenvwrapper_lazy.sh` - -if [[ -f "$wrapsource" ]]; then - source $wrapsource +virtualenvwrapper='virtualenvwrapper_lazy.sh' +if (( $+commands[$virtualenvwrapper] )); then + source ${${virtualenvwrapper}:c} if [[ ! $DISABLE_VENV_CD -eq 1 ]]; then - # Automatically activate Git projects' virtual environments based on the + # Automatically activate Git projects's virtual environments based on the # directory name of the project. Virtual environment name can be overridden # by placing a .venv file in the project root with a virtualenv name in it function workon_cwd { @@ -40,11 +39,17 @@ if [[ -f "$wrapsource" ]]; then fi } - # New cd function that does the virtualenv magic - function cd { - builtin cd "$@" && workon_cwd - } + # Append workon_cwd to the chpwd_functions array, so it will be called on cd + # http://zsh.sourceforge.net/Doc/Release/Functions.html + # TODO: replace with 'add-zsh-hook chpwd workon_cwd' when oh-my-zsh min version is raised above 4.3.4 + if (( ${+chpwd_functions} )); then + if (( $chpwd_functions[(I)workon_cwd] == 0 )); then + set -A chpwd_functions $chpwd_functions workon_cwd + fi + else + set -A chpwd_functions workon_cwd + fi fi else - print "zsh virtualenvwrapper plugin: Cannot find virtualenvwrapper_lazy.sh. Please install with \`pip install virtualenvwrapper\`." + print "zsh virtualenvwrapper plugin: Cannot find ${virtualenvwrapper}. Please install with \`pip install virtualenvwrapper\`." fi From 894e1caa0a7fb2e02aa139d23d0b05d62c6d8932 Mon Sep 17 00:00:00 2001 From: Andrew Grangaard Date: Sat, 8 Jun 2013 10:02:32 -0700 Subject: [PATCH 3/3] virtualenv cleanup: replaces subshell with prompt expansion. * :t parameter expansion returns the last portion of the path, equivalent to basename. I <3 zsh. * adds comments for the VIRTUAL_ENV_DISABLE_PROMPT, used by virtual_env activate See also: http://zsh.sourceforge.net/Doc/Release/Expansion.html#Parameter-Expansion --- plugins/virtualenv/virtualenv.plugin.zsh | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/plugins/virtualenv/virtualenv.plugin.zsh b/plugins/virtualenv/virtualenv.plugin.zsh index e8458389f..8e06450b1 100644 --- a/plugins/virtualenv/virtualenv.plugin.zsh +++ b/plugins/virtualenv/virtualenv.plugin.zsh @@ -1,9 +1,8 @@ function virtualenv_prompt_info(){ - local virtualenv_path="$VIRTUAL_ENV" - if [[ -n $virtualenv_path ]]; then - local virtualenv_name=`basename $virtualenv_path` - printf "%s[%s] " "%{${fg[yellow]}%}" $virtualenv_name + if [[ -n $VIRTUAL_ENV ]]; then + printf "%s[%s] " "%{${fg[yellow]}%}" ${${VIRTUAL_ENV}:t} fi } +# disables prompt mangling in virtual_env/bin/activate export VIRTUAL_ENV_DISABLE_PROMPT=1