Skip to content

Instantly share code, notes, and snippets.

@silviud
Forked from jaysw/postmkvirtualenv.sh
Last active August 29, 2015 14:02
Show Gist options
  • Save silviud/c9a848a64377f383c987 to your computer and use it in GitHub Desktop.
Save silviud/c9a848a64377f383c987 to your computer and use it in GitHub Desktop.
#!/usr/bin/env bash
# file: ~/.virtualenvs/postmkvirtualenv
# This hook is run after a new virtualenv is activated.
# setup python interpretor and sitepackages
# for Sublime Text's SublimeCodeIntel plugin.
# codeintel looks in the root of any folder opened via `subl foldername`
# for foldername/.codeintel/config
# it also looks in ~/.codeintel/config
# so we need to override that one when creating a virtualenv
setup_sublimecodeintel() {
projectdir="$1"
if [ -z $projectdir ]
then
projectfile=$VIRTUAL_ENV/$VIRTUALENVWRAPPER_PROJECT_FILENAME
if [ ! -f "$projectfile" ]
then
return 0
fi
projectdir=`cat "$projectfile"`
fi
if [ ! -d "$projectdir" ]
then
echo 'project dir not found'
return 1
fi
if [ ! -d "$projectdir"/.codeintel ]
then
mkdir "$projectdir"/.codeintel
fi
pythonbin=`which python`
site_packages=`"$pythonbin" -c "import distutils.sysconfig; print(distutils.sysconfig.get_python_lib())"`
if [ -e "$projectdir"/.codeintel/config ]
then
echo "Code intel file already exists. Bailing out. You can update it with:"
echo python binary: $pythonbin
echo site packages: $site_packages
return 1
fi
#site_packages="`virtualenvwrapper_get_site_packages_dir`"
echo creating $projectdir/.codeintel/config
echo python binary: $pythonbin
echo site packages: $site_packages
cat > $projectdir/.codeintel/config <<EOF
{
"Python": {
"python": '$pythonbin',
"pythonExtraPaths": ['$site_packages']
},
}
EOF
}
setup_sublimecodeintel $@
# run as sh postmkvirtualenv.sh project
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment