Virtualenv Wrapper Helper

A bit inspired by all the awesome stuff happening at PyCon, I've done a bit of hacking on my shell to improve the use of virtualenvwrapper. Remembering to checkout the correct virtualenv is a bit of a pain, especially when you move around your filesystem as much as I do. To fix this, I've written a bit of code for my bash prompt to ease the pain. It works by looking for the existence of a .venv file every time you cd into a directory. If it exists, it will attempt to workon the contents of the file, which should be the project name. For instance, for my oebfare project, the file contains the name of my virtualenv. Due to this, the following is possible:

# prompt edited to save space
:12:02 AM: (~/Code/django) jlilly$ cd baconfile/
(baconfile):12:03 AM: (~/Code/django/baconfile) (master) jlilly$ cd ..
(baconfile):12:03 AM: (~/Code/django) jlilly$ cd oebfare/
(oebfare):12:03 AM: (~/Code/django/oebfare) (master) jlilly$

When we cd into the baconfile dir, we get the virtualenv for baconfile. We can cd out of that directory and about the filesystem, but when we enter a directory that contains a different .venv file, we get a different virtualenv.