source: python/trunk/Mac/BuildScript/scripts/postflight.patch-profile

Last change on this file was 391, checked in by dmik, 11 years ago

python: Merge vendor 2.7.6 to trunk.

  • Property svn:eol-style set to native
File size: 2.5 KB
Line 
1#!/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
8PYVER="@PYVER@"
9PYTHON_ROOT="/Library/Frameworks/Python.framework/Versions/@PYVER@"
10
11if [ `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
20# Make sure the directory ${PYTHON_ROOT}/bin is on the users PATH.
21BSH="`basename "${theShell}"`"
22case "${BSH}" in
23bash|ksh|sh|*csh|zsh)
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 ;;
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 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 Python ${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 ;;
68bash)
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 ;;
79zsh)
80 PR="${HOME}/.zprofile"
81 ;;
82*sh)
83 PR="${HOME}/.profile"
84 ;;
85esac
86
87# Create backup copy before patching
88if [ -f "${PR}" ]; then
89 cp -fp "${PR}" "${PR}.pysave"
90fi
91echo "" >> "${PR}"
92echo "# Setting PATH for Python ${PYVER}" >> "${PR}"
93echo "# The orginal version is saved in `basename ${PR}`.pysave" >> "${PR}"
94echo 'PATH="'"${PYTHON_ROOT}/bin"':${PATH}"' >> "${PR}"
95echo 'export PATH' >> "${PR}"
96if [ `id -ur` = 0 ]; then
97 chown "${USER}" "${PR}"
98fi
99exit 0
Note: See TracBrowser for help on using the repository browser.