Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
adam.huang
Ohmyzsh
Commits
3d5b3430
Commit
3d5b3430
authored
Jul 29, 2015
by
Robby Russell
Browse files
Merge pull request #4122 from apjanke/venvw-treat-git-repo-as-venv-again
virtualenvwrapper: Treat git repos as project roots again
parents
a207a38d
f73e642e
Changes
1
Hide whitespace changes
Inline
Side-by-side
plugins/virtualenvwrapper/virtualenvwrapper.plugin.zsh
View file @
3d5b3430
...
...
@@ -14,32 +14,38 @@ elif [[ -f "/etc/bash_completion.d/virtualenvwrapper" ]]; then
source
"/etc/bash_completion.d/virtualenvwrapper"
}
else
print
"zsh virtualenvwrapper plugin: Cannot find
${
virtualenvwrapper
}
.
\n
"
\
print
"
[oh-my-
zsh
]
virtualenvwrapper plugin: Cannot find
${
virtualenvwrapper
}
.
\n
"
\
"Please install with
\`
pip install virtualenvwrapper
\`
"
>
&2
return
fi
if
!
type
workon &>/dev/null
;
then
print
"zsh virtualenvwrapper plugin: shell function 'workon' not defined.
\n
"
\
print
"
[oh-my-
zsh
]
virtualenvwrapper plugin: shell function 'workon' not defined.
\n
"
\
"Please check
${
virtualenvwrapper
}
"
>
&2
return
fi
if
[[
"
$WORKON_HOME
"
==
""
]]
;
then
print
"
\$
WORKON_HOME is not defined so
ZSH
plugin virtualenvwrapper will not work"
>
&2
print
"
[oh-my-zsh]
\$
WORKON_HOME is not defined so plugin virtualenvwrapper will not work"
>
&2
return
fi
if
[[
!
$DISABLE_VENV_CD
-eq
1
]]
;
then
# Automatically activate Git projects
'
virtual
env
ironmen
ts based on the
# Automatically activate Git projects
or other customized
virtualenv
wrapper projec
ts 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
# by placing a .venv file in the project root with a virtualenv name in it
.
function
workon_cwd
{
if
[
!
$WORKON_CWD
]
;
then
WORKON_CWD
=
1
if
[
[
-z
"
$WORKON_CWD
"
]
]
;
then
local
WORKON_CWD
=
1
# Check if this is a Git repo
local
GIT_REPO_ROOT
=
""
local
GIT_TOPLEVEL
=
$(
git rev-parse
--show-toplevel
2> /dev/null
)
if
[[
$?
==
0
]]
;
then
GIT_REPO_ROOT
=
"
$GIT_TOPLEVEL
"
fi
# Get absolute path, resolving symlinks
PROJECT_ROOT
=
"
${
PWD
:A
}
"
while
[[
"
$PROJECT_ROOT
"
!=
"/"
&&
!
-e
"
$PROJECT_ROOT
/.venv"
]]
;
do
local
PROJECT_ROOT
=
"
${
PWD
:A
}
"
while
[[
"
$PROJECT_ROOT
"
!=
"/"
&&
!
-e
"
$PROJECT_ROOT
/.venv"
\
&&
!
-d
"
$PROJECT_ROOT
/.git"
&&
"
$PROJECT_ROOT
"
!=
"
$GIT_REPO_ROOT
"
]]
;
do
PROJECT_ROOT
=
"
${
PROJECT_ROOT
:h
}
"
done
if
[[
"
$PROJECT_ROOT
"
==
"/"
]]
;
then
...
...
@@ -47,7 +53,7 @@ if [[ ! $DISABLE_VENV_CD -eq 1 ]]; then
fi
# Check for virtualenv name override
if
[[
-f
"
$PROJECT_ROOT
/.venv"
]]
;
then
ENV_NAME
=
`
cat
"
$PROJECT_ROOT
/.venv"
`
ENV_NAME
=
`
cat
"
$PROJECT_ROOT
/.venv"
`
elif
[[
-f
"
$PROJECT_ROOT
/.venv/bin/activate"
]]
;
then
ENV_NAME
=
"
$PROJECT_ROOT
/.venv"
elif
[[
"
$PROJECT_ROOT
"
!=
"."
]]
;
then
...
...
@@ -69,8 +75,6 @@ if [[ ! $DISABLE_VENV_CD -eq 1 ]]; then
# Note: this only happens if the virtualenv was activated automatically
deactivate
&&
unset
CD_VIRTUAL_ENV
fi
unset
PROJECT_ROOT
unset
WORKON_CWD
fi
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment