17db96d56Sopenharmony_ci#!/bin/sh 27db96d56Sopenharmony_ci 37db96d56Sopenharmony_ciecho "This script will update your shell profile when the 'bin' directory" 47db96d56Sopenharmony_ciecho "of python is not early enough of the PATH of your shell." 57db96d56Sopenharmony_ciecho "These changes will be effective only in shell windows that you open" 67db96d56Sopenharmony_ciecho "after running this script." 77db96d56Sopenharmony_ci 87db96d56Sopenharmony_ciPYVER=@PYVER@ 97db96d56Sopenharmony_ciPYTHON_ROOT="/Library/Frameworks/Python.framework/Versions/@PYVER@" 107db96d56Sopenharmony_ci 117db96d56Sopenharmony_ciif [ `id -ur` = 0 ]; then 127db96d56Sopenharmony_ci # Run from the installer, do some trickery to fetch the information 137db96d56Sopenharmony_ci # we need. 147db96d56Sopenharmony_ci theShell="`finger $USER | grep Shell: | head -1 | awk '{ print $NF }'`" 157db96d56Sopenharmony_ci 167db96d56Sopenharmony_cielse 177db96d56Sopenharmony_ci theShell="${SHELL}" 187db96d56Sopenharmony_cifi 197db96d56Sopenharmony_ci 207db96d56Sopenharmony_ci# Make sure the directory ${PYTHON_ROOT}/bin is on the users PATH. 217db96d56Sopenharmony_ciBSH="`basename "${theShell}"`" 227db96d56Sopenharmony_cicase "${BSH}" in 237db96d56Sopenharmony_cibash|ksh|sh|*csh|zsh|fish) 247db96d56Sopenharmony_ci if [ `id -ur` = 0 ]; then 257db96d56Sopenharmony_ci P=`su - ${USER} -c 'echo A-X-4-X@@$PATH@@X-4-X-A' | grep 'A-X-4-X@@.*@@X-4-X-A' | sed -e 's/^A-X-4-X@@//g' -e 's/@@X-4-X-A$//g'` 267db96d56Sopenharmony_ci else 277db96d56Sopenharmony_ci P="`(exec -l ${theShell} -c 'echo $PATH')`" 287db96d56Sopenharmony_ci fi 297db96d56Sopenharmony_ci ;; 307db96d56Sopenharmony_ci*) 317db96d56Sopenharmony_ci echo "Sorry, I don't know how to patch $BSH shells" 327db96d56Sopenharmony_ci exit 0 337db96d56Sopenharmony_ci ;; 347db96d56Sopenharmony_ciesac 357db96d56Sopenharmony_ci 367db96d56Sopenharmony_ci# Now ensure that our bin directory is on $P and before /usr/bin at that 377db96d56Sopenharmony_cifor elem in `echo $P | tr ':' ' '` 387db96d56Sopenharmony_cido 397db96d56Sopenharmony_ci if [ "${elem}" = "${PYTHON_ROOT}/bin" ]; then 407db96d56Sopenharmony_ci echo "All right, you're a python lover already" 417db96d56Sopenharmony_ci exit 0 427db96d56Sopenharmony_ci elif [ "${elem}" = "/usr/bin" ]; then 437db96d56Sopenharmony_ci break 447db96d56Sopenharmony_ci fi 457db96d56Sopenharmony_cidone 467db96d56Sopenharmony_ci 477db96d56Sopenharmony_ciecho "${PYTHON_ROOT}/bin is not on your PATH or at least not early enough" 487db96d56Sopenharmony_cicase "${BSH}" in 497db96d56Sopenharmony_ci*csh) 507db96d56Sopenharmony_ci if [ -f "${HOME}/.tcshrc" ]; then 517db96d56Sopenharmony_ci RC="${HOME}/.tcshrc" 527db96d56Sopenharmony_ci else 537db96d56Sopenharmony_ci RC="${HOME}/.cshrc" 547db96d56Sopenharmony_ci fi 557db96d56Sopenharmony_ci # Create backup copy before patching 567db96d56Sopenharmony_ci if [ -f "${RC}" ]; then 577db96d56Sopenharmony_ci cp -fp "${RC}" "${RC}.pysave" 587db96d56Sopenharmony_ci fi 597db96d56Sopenharmony_ci echo "" >> "${RC}" 607db96d56Sopenharmony_ci echo "# Setting PATH for Python ${PYVER}" >> "${RC}" 617db96d56Sopenharmony_ci echo "# The original version is saved in .cshrc.pysave" >> "${RC}" 627db96d56Sopenharmony_ci echo "set path=(${PYTHON_ROOT}/bin "'$path'")" >> "${RC}" 637db96d56Sopenharmony_ci if [ `id -ur` = 0 ]; then 647db96d56Sopenharmony_ci chown "${USER}" "${RC}" 657db96d56Sopenharmony_ci fi 667db96d56Sopenharmony_ci exit 0 677db96d56Sopenharmony_ci ;; 687db96d56Sopenharmony_cibash) 697db96d56Sopenharmony_ci if [ -e "${HOME}/.bash_profile" ]; then 707db96d56Sopenharmony_ci PR="${HOME}/.bash_profile" 717db96d56Sopenharmony_ci elif [ -e "${HOME}/.bash_login" ]; then 727db96d56Sopenharmony_ci PR="${HOME}/.bash_login" 737db96d56Sopenharmony_ci elif [ -e "${HOME}/.profile" ]; then 747db96d56Sopenharmony_ci PR="${HOME}/.profile" 757db96d56Sopenharmony_ci else 767db96d56Sopenharmony_ci PR="${HOME}/.bash_profile" 777db96d56Sopenharmony_ci fi 787db96d56Sopenharmony_ci ;; 797db96d56Sopenharmony_cifish) 807db96d56Sopenharmony_ci CONFIG_DIR="${HOME}/.config/fish" 817db96d56Sopenharmony_ci RC="${CONFIG_DIR}/config.fish" 827db96d56Sopenharmony_ci mkdir -p "$CONFIG_DIR" 837db96d56Sopenharmony_ci if [ -f "${RC}" ]; then 847db96d56Sopenharmony_ci cp -fp "${RC}" "${RC}.pysave" 857db96d56Sopenharmony_ci fi 867db96d56Sopenharmony_ci echo "" >> "${RC}" 877db96d56Sopenharmony_ci echo "# Setting PATH for Python ${PYVER}" >> "${RC}" 887db96d56Sopenharmony_ci echo "# The original version is saved in ${RC}.pysave" >> "${RC}" 897db96d56Sopenharmony_ci echo "set -x PATH \"${PYTHON_ROOT}/bin\" \"\$PATH\"" >> "${RC}" 907db96d56Sopenharmony_ci if [ `id -ur` = 0 ]; then 917db96d56Sopenharmony_ci chown "${USER}" "${RC}" 927db96d56Sopenharmony_ci fi 937db96d56Sopenharmony_ci exit 0 947db96d56Sopenharmony_ci ;; 957db96d56Sopenharmony_cizsh) 967db96d56Sopenharmony_ci PR="${HOME}/.zprofile" 977db96d56Sopenharmony_ci ;; 987db96d56Sopenharmony_ci*sh) 997db96d56Sopenharmony_ci PR="${HOME}/.profile" 1007db96d56Sopenharmony_ci ;; 1017db96d56Sopenharmony_ciesac 1027db96d56Sopenharmony_ci 1037db96d56Sopenharmony_ci# Create backup copy before patching 1047db96d56Sopenharmony_ciif [ -f "${PR}" ]; then 1057db96d56Sopenharmony_ci cp -fp "${PR}" "${PR}.pysave" 1067db96d56Sopenharmony_cifi 1077db96d56Sopenharmony_ciecho "" >> "${PR}" 1087db96d56Sopenharmony_ciecho "# Setting PATH for Python ${PYVER}" >> "${PR}" 1097db96d56Sopenharmony_ciecho "# The original version is saved in `basename ${PR}`.pysave" >> "${PR}" 1107db96d56Sopenharmony_ciecho 'PATH="'"${PYTHON_ROOT}/bin"':${PATH}"' >> "${PR}" 1117db96d56Sopenharmony_ciecho 'export PATH' >> "${PR}" 1127db96d56Sopenharmony_ciif [ `id -ur` = 0 ]; then 1137db96d56Sopenharmony_ci chown "${USER}" "${PR}" 1147db96d56Sopenharmony_cifi 1157db96d56Sopenharmony_ciexit 0 116