sashahart / vex

Run a command in the named virtualenv.
MIT License
372 stars 26 forks source link

Make relative --path work with `vex` #28

Closed techtonik closed 9 years ago

techtonik commented 9 years ago

This is a proof of concept for to make relative paths working with vex

sashahart commented 9 years ago

--path already works with relative paths.

cd /tmp
virtualenv env
vex --path ./env python -c "import sys; print(sys.executable)"
vex --path ../tmp/env python -c "import sys; print(sys.executable)"
sashahart commented 9 years ago

Given the above (that you can use ./ and ../ etc.)

'vex foo' must always mean to use ~/.virtualenvs/foo (modulo the user's virtualenvs directory). If 'vex foo' sometimes means to check a directory under the current directory named foo, that will cause great user confusion. Sometimes a directory named foo will randomly be present, not as a virtualenv, command will fail. If it is a virtualenv, now it is ambiguous which virtualenv we meant to use and someone is going to get even more confused by that when the wrong virtualenv is used (since there is no right one any more).

I don't think there is any real need here. You can specify the path if you mean to specify the path, it is a shortcut for things like /foo/bar/baz/env/bin/python