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