1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104
|
#!/bin/sh
PYVER=@PYVER@
PYTHON_ROOT="/Library/Frameworks/Python.framework/Versions/@PYVER@"
# Run from the installer, do some trickery to fetch the information
# we need.
theShell="`finger $USER | grep Shell: | head -1 | awk '{ print $NF }'`"
# Make sure the directory ${PYTHON_ROOT}/bin is on the users PATH.
BSH="`basename "${theShell}"`"
case "${BSH}" in
bash|ksh|sh|*csh|zsh|fish)
true
;;
*)
exit 0
;;
esac
case "${BSH}" in
*csh)
if [ -f "${HOME}/.tcshrc" ]; then
RC="${HOME}/.tcshrc"
else
RC="${HOME}/.cshrc"
fi
# Drop privileges while writing files.
su -m ${USER} <<EOFC
# Create backup copy before patching
if [ -f "${RC}" ]; then
cp -fp "${RC}" "${RC}.pysave"
fi
echo "" >> "${RC}"
echo "# Setting PATH for Python ${PYVER}" >> "${RC}"
echo "# The original version is saved in .cshrc.pysave" >> "${RC}"
echo "set path=(${PYTHON_ROOT}/bin "'\$path'")" >> "${RC}"
EOFC
if [ `id -ur` = 0 ]; then
chown -h "${USER}" "${RC}"
fi
exit 0
;;
bash)
if [ -e "${HOME}/.bash_profile" ]; then
PR="${HOME}/.bash_profile"
elif [ -e "${HOME}/.bash_login" ]; then
PR="${HOME}/.bash_login"
elif [ -e "${HOME}/.profile" ]; then
PR="${HOME}/.profile"
else
PR="${HOME}/.bash_profile"
fi
;;
fish)
CONFIG_DIR="${HOME}/.config/fish/conf.d/"
RC="${CONFIG_DIR}/python-${PYVER}.fish"
# Drop privileges while writing files.
su -m ${USER} <<EOFF
mkdir -p "$CONFIG_DIR"
if [ -f "${RC}" ]; then
cp -fp "${RC}" "${RC}.pysave"
fi
echo "# Setting PATH for Python ${PYVER}" > "${RC}"
if [ -f "${RC}.pysave" ]; then
echo "# The original version is saved in ${RC}.pysave" >> "${RC}"
fi
echo "fish_add_path -g \"${PYTHON_ROOT}/bin\"" >> "${RC}"
EOFF
if [ `id -ur` = 0 ]; then
chown -h "${USER}" "${RC}"
fi
exit 0
;;
zsh)
PR="${HOME}/.zprofile"
;;
*sh)
PR="${HOME}/.profile"
;;
esac
# Drop privileges while writing files.
su -m ${USER} <<EOFS
# Create backup copy before patching
if [ -f "${PR}" ]; then
cp -fp "${PR}" "${PR}.pysave"
fi
echo "" >> "${PR}"
echo "# Setting PATH for Python ${PYVER}" >> "${PR}"
echo "# The original version is saved in `basename ${PR}`.pysave" >> "${PR}"
echo 'PATH="'"${PYTHON_ROOT}/bin"':\${PATH}"' >> "${PR}"
echo 'export PATH' >> "${PR}"
EOFS
if [ `id -ur` = 0 ]; then
chown -h "${USER}" "${PR}"
fi
exit 0
|