Home | History | Annotate | Download | only in scripts
      1 #!/bin/sh
      2 #
      3 # Install/upgrade pip.
      4 #
      5 
      6 PYVER="@PYVER@"
      7 PYMAJOR="@PYMAJOR@"
      8 FWK="/Library/Frameworks/Python.framework/Versions/${PYVER}"
      9 RELFWKBIN="../../..${FWK}/bin"
     10 
     11 umask 022
     12 
     13 "${FWK}/bin/python${PYVER}" -m ensurepip --upgrade
     14 
     15 "${FWK}/bin/python${PYVER}" -Wi \
     16     "${FWK}/lib/python${PYVER}/compileall.py" \
     17     -f -x badsyntax \
     18     "${FWK}/lib/python${PYVER}/site-packages"
     19 
     20 "${FWK}/bin/python${PYVER}" -Wi -O \
     21     "${FWK}/lib/python${PYVER}/compileall.py" \
     22     -f -x badsyntax \
     23     "${FWK}/lib/python${PYVER}/site-packages"
     24 
     25 chgrp -R admin "${FWK}/lib/python${PYVER}/site-packages" "${FWK}/bin"
     26 chmod -R g+w "${FWK}/lib/python${PYVER}/site-packages" "${FWK}/bin"
     27 
     28 # We do not know if the user selected the Python command-line tools
     29 # package that installs symlinks to /usr/local/bin.  So we assume
     30 # that the command-line tools package has already completed or was
     31 # not selected and we will only install /usr/local/bin symlinks for
     32 # pip et al if there are /usr/local/bin/python* symlinks to our
     33 # framework bin directory.
     34 
     35 if [ -d /usr/local/bin ] ; then
     36     (
     37         install_links_if_our_fw() {
     38             if [ "$(readlink -n ./$1)" = "${RELFWKBIN}/$1" ] ; then
     39                 shift
     40                 for fn ;
     41                 do
     42                     if [ -e "${RELFWKBIN}/${fn}" ] ; then
     43                         rm -f ./${fn}
     44                         ln -s "${RELFWKBIN}/${fn}" "./${fn}"
     45                         chgrp -h admin "./${fn}"
     46                         chmod -h g+w "./${fn}"
     47                     fi
     48                 done
     49             fi
     50         }
     51 
     52         cd /usr/local/bin
     53 
     54         # Create pipx.y and easy_install-x.y links if /usr/local/bin/pythonx.y
     55         #   is linked to this framework version
     56         install_links_if_our_fw "python${PYVER}" \
     57                                     "pip${PYVER}" "easy_install-${PYVER}"
     58 
     59         # Create pipx link if /usr/local/bin/pythonx is linked to this version
     60         install_links_if_our_fw "python${PYMAJOR}" \
     61                                     "pip${PYMAJOR}"
     62 
     63         # Create pip and easy_install link if /usr/local/bin/python
     64         #   is linked to this version
     65         install_links_if_our_fw "python" \
     66                                     "pip" "easy_install"
     67     )
     68 fi
     69 exit 0
     70