blob: c42e11e31b695541b06932a219b78a710cb21457 [file] [log] [blame]
Thomas Wouters477c8d52006-05-27 19:21:47 +00001#!/bin/sh
2
3echo "This script will update your shell profile when the 'bin' directory"
4echo "of python is not early enough of the PATH of your shell."
5echo "These changes will be effective only in shell windows that you open"
6echo "after running this script."
7
Thomas Wouters0e3f5912006-08-11 14:57:12 +00008PYVER=2.5
Thomas Wouters477c8d52006-05-27 19:21:47 +00009PYTHON_ROOT="/Library/Frameworks/Python.framework/Versions/Current"
10
Thomas Wouters0e3f5912006-08-11 14:57:12 +000011if [ `id -ur` = 0 ]; then
12 # Run from the installer, do some trickery to fetch the information
13 # we need.
14 theShell="`finger $USER | grep Shell: | head -1 | awk '{ print $NF }'`"
15
16else
17 theShell="${SHELL}"
18fi
19
Thomas Wouters477c8d52006-05-27 19:21:47 +000020# Make sure the directory ${PYTHON_ROOT}/bin is on the users PATH.
Thomas Wouters0e3f5912006-08-11 14:57:12 +000021BSH="`basename "${theShell}"`"
Thomas Wouters477c8d52006-05-27 19:21:47 +000022case "${BSH}" in
23bash|ksh|sh|*csh)
Thomas Wouters0e3f5912006-08-11 14:57:12 +000024 if [ `id -ur` = 0 ]; then
25 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'`
26 else
27 P="`(exec -l ${theShell} -c 'echo $PATH')`"
28 fi
Thomas Wouters477c8d52006-05-27 19:21:47 +000029 ;;
30*)
31 echo "Sorry, I don't know how to patch $BSH shells"
32 exit 0
33 ;;
34esac
35
36# Now ensure that our bin directory is on $P and before /usr/bin at that
37for elem in `echo $P | tr ':' ' '`
38do
39 if [ "${elem}" == "${PYTHON_ROOT}/bin" ]; then
40 echo "All right, you're a python lover already"
41 exit 0
42 elif [ "${elem}" == "/usr/bin" ]; then
43 break
44 fi
45done
46
47echo "${PYTHON_ROOT}/bin is not on your PATH or at least not early enough"
48case "${BSH}" in
49*csh)
50 # Create backup copy before patching
51 if [ -f "${HOME}/.cshrc" ]; then
52 cp -fp "${HOME}/.cshrc" "${HOME}/.cshrc.pysave"
53 fi
54 echo "" >> "${HOME}/.cshrc"
55 echo "# Setting PATH for MacPython ${PYVER}" >> "${HOME}/.cshrc"
56 echo "# The orginal version is saved in .cshrc.pysave" >> "${HOME}/.cshrc"
57 echo "set path=(${PYTHON_ROOT}/bin "'$path'")" >> "${HOME}/.cshrc"
Thomas Wouters0e3f5912006-08-11 14:57:12 +000058 if [ `id -ur` = 0 ]; then
59 chown "${USER}" "${HOME}/.cshrc"
60 fi
Thomas Wouters477c8d52006-05-27 19:21:47 +000061 exit 0
62 ;;
63bash)
Thomas Wouters0e3f5912006-08-11 14:57:12 +000064 if [ -e "${HOME}/.bash_profile" ]; then
65 PR="${HOME}/.bash_profile"
66 elif [ -e "${HOME}/.profile" ]; then
Thomas Wouters477c8d52006-05-27 19:21:47 +000067 PR="${HOME}/.profile"
68 else
69 PR="${HOME}/.bash_profile"
70 fi
71 ;;
72*sh)
73 PR="${HOME}/.profile"
74 ;;
75esac
76
77# Create backup copy before patching
78if [ -f "${PR}" ]; then
79 cp -fp "${PR}" "${PR}.pysave"
80fi
81echo "" >> "${PR}"
82echo "# Setting PATH for MacPython ${PYVER}" >> "${PR}"
83echo "# The orginal version is saved in `basename ${PR}`.pysave" >> "${PR}"
84echo 'PATH="'"${PYTHON_ROOT}/bin"':${PATH}"' >> "${PR}"
85echo 'export PATH' >> "${PR}"
86if [ `id -ur` = 0 ]; then
Thomas Wouters0e3f5912006-08-11 14:57:12 +000087 chown "${USER}" "${PR}"
Thomas Wouters477c8d52006-05-27 19:21:47 +000088fi
89exit 0