| #!/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 |