|
1 #!/bin/sh |
|
2 |
|
3 echo "This script will update your shell profile when the 'bin' directory" |
|
4 echo "of python is not early enough of the PATH of your shell." |
|
5 echo "These changes will be effective only in shell windows that you open" |
|
6 echo "after running this script." |
|
7 |
|
8 PYVER=2.6 |
|
9 PYTHON_ROOT="/Library/Frameworks/Python.framework/Versions/Current" |
|
10 |
|
11 if [ `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 |
|
16 else |
|
17 theShell="${SHELL}" |
|
18 fi |
|
19 |
|
20 # Make sure the directory ${PYTHON_ROOT}/bin is on the users PATH. |
|
21 BSH="`basename "${theShell}"`" |
|
22 case "${BSH}" in |
|
23 bash|ksh|sh|*csh) |
|
24 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 |
|
29 ;; |
|
30 *) |
|
31 echo "Sorry, I don't know how to patch $BSH shells" |
|
32 exit 0 |
|
33 ;; |
|
34 esac |
|
35 |
|
36 # Now ensure that our bin directory is on $P and before /usr/bin at that |
|
37 for elem in `echo $P | tr ':' ' '` |
|
38 do |
|
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 |
|
45 done |
|
46 |
|
47 echo "${PYTHON_ROOT}/bin is not on your PATH or at least not early enough" |
|
48 case "${BSH}" in |
|
49 *csh) |
|
50 if [ -f "${HOME}/.tcshrc" ]; then |
|
51 RC="${HOME}/.tcshrc" |
|
52 else |
|
53 RC="${HOME}/.cshrc" |
|
54 fi |
|
55 # Create backup copy before patching |
|
56 if [ -f "${RC}" ]; then |
|
57 cp -fp "${RC}" "${RC}.pysave" |
|
58 fi |
|
59 echo "" >> "${RC}" |
|
60 echo "# Setting PATH for MacPython ${PYVER}" >> "${RC}" |
|
61 echo "# The orginal version is saved in .cshrc.pysave" >> "${RC}" |
|
62 echo "set path=(${PYTHON_ROOT}/bin "'$path'")" >> "${RC}" |
|
63 if [ `id -ur` = 0 ]; then |
|
64 chown "${USER}" "${RC}" |
|
65 fi |
|
66 exit 0 |
|
67 ;; |
|
68 bash) |
|
69 if [ -e "${HOME}/.bash_profile" ]; then |
|
70 PR="${HOME}/.bash_profile" |
|
71 elif [ -e "${HOME}/.bash_login" ]; then |
|
72 PR="${HOME}/.bash_login" |
|
73 elif [ -e "${HOME}/.profile" ]; then |
|
74 PR="${HOME}/.profile" |
|
75 else |
|
76 PR="${HOME}/.bash_profile" |
|
77 fi |
|
78 ;; |
|
79 *sh) |
|
80 PR="${HOME}/.profile" |
|
81 ;; |
|
82 esac |
|
83 |
|
84 # Create backup copy before patching |
|
85 if [ -f "${PR}" ]; then |
|
86 cp -fp "${PR}" "${PR}.pysave" |
|
87 fi |
|
88 echo "" >> "${PR}" |
|
89 echo "# Setting PATH for MacPython ${PYVER}" >> "${PR}" |
|
90 echo "# The orginal version is saved in `basename ${PR}`.pysave" >> "${PR}" |
|
91 echo 'PATH="'"${PYTHON_ROOT}/bin"':${PATH}"' >> "${PR}" |
|
92 echo 'export PATH' >> "${PR}" |
|
93 if [ `id -ur` = 0 ]; then |
|
94 chown "${USER}" "${PR}" |
|
95 fi |
|
96 exit 0 |