-
-
Save kmpm/946202 to your computer and use it in GitHub Desktop.
pylink - Link and unlink Python modules to your site packages directory.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# | |
# pylink.sh - Link a Python module to your site packages directory. | |
# | |
# See http://gist.github.com/21649 for updates. | |
# Check that an argument has been given. If not, print usage string. | |
if [ -z $1 ] | |
then | |
echo "Usage: `basename $0` <path_to_module> [<link_name>]" | |
exit | |
fi | |
# If there is not already a SITE_PACKAGES environment variable, then get it | |
# from Python. | |
if [[ -z $SITE_PACKAGES || ! -d $SITE_PACKAGES ]] | |
then | |
SITE_PACKAGES=`python -c "from distutils.sysconfig import get_python_lib; print get_python_lib()"` | |
fi | |
# Parse the first argument | |
BASE=`basename $1` | |
DIR=`dirname $1` | |
# Go into the directory of the first argument | |
pushd $DIR > /dev/null | |
if [ $2 ]; then | |
# If an additional name for the module has been provided, use that as the | |
# link's basename. | |
ln -sfnv `pwd`/$BASE $SITE_PACKAGES/`basename $2` | |
else | |
# Otherwise, use the basename of the given location. | |
ln -sfnv `pwd`/$BASE $SITE_PACKAGES/$BASE | |
fi | |
# Return to where we were before | |
popd > /dev/null | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# | |
# pyunlink.sh - Remove a pylinked module from your site packages directory. | |
# | |
# See http://gist.github.com/21649 for updates. | |
# Check that an argument has been given. If not, print usage string. | |
if [ -z $1 ] | |
then | |
echo "Usage: `basename $0` <link_name>" | |
exit | |
fi | |
# If there is not already a SITE_PACKAGES environment variable, then get it | |
# from Python. | |
if [[ -z $SITE_PACKAGES || ! -d $SITE_PACKAGES ]] | |
then | |
SITE_PACKAGES=`python -c "from distutils.sysconfig import get_python_lib; print get_python_lib()"` | |
fi | |
# If given name is a symbolic link in $SITE_PACKAGES | |
if [ -h $SITE_PACKAGES/`basename $1` ]; then | |
# Remove it | |
rm -Rf $SITE_PACKAGES/`basename $1` | |
else | |
# Signal an error. | |
echo "Error: link `basename $1` not found." | |
exit 1 | |
fi |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment