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