summaryrefslogtreecommitdiffstats
path: root/Mac/BuildScript/scripts/postflight.ensurepip
blob: bf893d1da61698f43ba4de91c8e1f3145f801fff (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#!/bin/sh
#
# Install/upgrade pip.
#

PYVER="@PYVER@"
PYMAJOR="@PYMAJOR@"
FWK="/Library/Frameworks/Python.framework/Versions/${PYVER}"
RELFWKBIN="../../..${FWK}/bin"

umask 022

"${FWK}/bin/python${PYVER}" -m ensurepip --upgrade

"${FWK}/bin/python${PYVER}" -Wi \
    "${FWK}/lib/python${PYVER}/compileall.py" \
    -f -x badsyntax \
    "${FWK}/lib/python${PYVER}/site-packages"

"${FWK}/bin/python${PYVER}" -Wi -O \
    "${FWK}/lib/python${PYVER}/compileall.py" \
    -f -x badsyntax \
    "${FWK}/lib/python${PYVER}/site-packages"

chgrp -R admin "${FWK}/lib/python${PYVER}/site-packages" "${FWK}/bin"
chmod -R g+w "${FWK}/lib/python${PYVER}/site-packages" "${FWK}/bin"

# We do not know if the user selected the Python command-line tools
# package that installs symlinks to /usr/local/bin.  So we assume
# that the command-line tools package has already completed or was
# not selected and we will only install /usr/local/bin symlinks for
# pip et al if there are /usr/local/bin/python* symlinks to our
# framework bin directory.

if [ -d /usr/local/bin ] ; then
    (
        install_links_if_our_fw() {
            if [ "$(readlink -n ./$1)" = "${RELFWKBIN}/$1" ] ; then
                shift
                for fn ;
                do
                    if [ -e "${RELFWKBIN}/${fn}" ] ; then
                        rm -f ./${fn}
                        ln -s "${RELFWKBIN}/${fn}" "./${fn}"
                        chgrp -h admin "./${fn}"
                        chmod -h g+w "./${fn}"
                    fi
                done
            fi
        }

        cd /usr/local/bin

        # Create pipx.y and easy_install-x.y links if /usr/local/bin/pythonx.y
        #   is linked to this framework version
        install_links_if_our_fw "python${PYVER}" \
                                    "pip${PYVER}" "easy_install-${PYVER}"

        # Create pipx link if /usr/local/bin/pythonx is linked to this version
        install_links_if_our_fw "python${PYMAJOR}" \
                                    "pip${PYMAJOR}"

        # Create pip and easy_install link if /usr/local/bin/python
        #   is linked to this version
        install_links_if_our_fw "python" \
                                    "pip" "easy_install"
    )
fi
exit 0