| #!/bin/sh |
| #---------------------------------------------------------------------- |
| # Create the unix tools and compile the .py files after Python has been |
| # installed. |
| #---------------------------------------------------------------------- |
| |
| PYVER=2.3 |
| |
| PKG=$1 |
| DEST=$2 |
| |
| # Make sure things are group-writeable |
| umask 2 |
| |
| # if destination is / then use usr/local/bin, otherwise just bin |
| if [ "$DEST" = "/" ]; then |
| TOOLDIR=/usr/local/bin |
| DEST= |
| else |
| TOOLDIR=$DEST/bin |
| fi |
| |
| # Make sure the dir exists |
| mkdir -p $TOOLDIR |
| |
| # Make some links to the python executable |
| ln -fsh $DEST/Library/Frameworks/Python.framework/Versions/$PYVER/bin/python $TOOLDIR/python$PYVER |
| ln -fsh python$PYVER $TOOLDIR/python |
| |
| |
| # make the pythonw script |
| rm -f $TOOLDIR/pythonw$PYVER |
| cat > $TOOLDIR/pythonw$PYVER <<EOF |
| #!/bin/sh |
| exec "$DEST/Library/Frameworks/Python.framework/Versions/$PYVER/Resources/Python.app/Contents/MacOS/Python" "\$@" |
| EOF |
| chmod +x $TOOLDIR/pythonw$PYVER |
| ln -fsh pythonw$PYVER $TOOLDIR/pythonw |
| |
| |
| # Compile the .py files in the Python library to .pyc's and then .pyo's |
| $TOOLDIR/python -Wi -tt \ |
| $DEST/Library/Frameworks/Python.framework/Versions/$PYVER/lib/python$PYVER/compileall.py \ |
| -x badsyntax -x site-packages $DEST/Library/Frameworks/Python.framework/Versions/$PYVER/lib/python$PYVER |
| |
| $TOOLDIR/python -Wi -tt -O \ |
| $DEST/Library/Frameworks/Python.framework/Versions/$PYVER/lib/python$PYVER/compileall.py \ |
| -x badsyntax -x site-packages $DEST/Library/Frameworks/Python.framework/Versions/$PYVER/lib/python$PYVER |
| |
| $TOOLDIR/python -Wi -tt \ |
| $DEST/Library/Frameworks/Python.framework/Versions/$PYVER/lib/python$PYVER/compileall.py \ |
| $DEST/Library/Frameworks/Python.framework/Versions/$PYVER/Mac/Tools |
| |
| $TOOLDIR/python -Wi -tt -O \ |
| $DEST/Library/Frameworks/Python.framework/Versions/$PYVER/lib/python$PYVER/compileall.py \ |
| $DEST/Library/Frameworks/Python.framework/Versions/$PYVER/Mac/Tools |
| |
| |
| # Make the site-packages and other dirs writable by the admin if destination is / |
| |
| if [ "$DEST" = "/" ]; then |
| for d in $DEST/Library/Frameworks/Python.framework/Versions/$PYVER/lib/python$PYVER/site-packages \ |
| $DEST/Library/Frameworks/Python.framework/Versions/$PYVER/bin \ |
| $DEST/Library/Frameworks/Python.framework/Versions/$PYVER/Resources/Python.app/Contents/Resources \ |
| $DEST/Applications/MacPython-$PYVER; do |
| chgrp -R admin $d |
| chmod -R g+w $d |
| done |
| fi |
| |
| if [ "$DEST" != "/" ]; then |
| # The link in the app bundles and in pydoc need updating. |
| installed_python=$DEST/Library/Frameworks/Python.framework/Versions/$PYVER/Resources/Python.app/Contents/MacOS/python |
| for app in BuildApplet IDLE PackageManager PythonIDE; do |
| ln -fsh $installed_python \ |
| $DEST/Applications/MacPython-$PYVER/$app.app/Contents/MacOS |
| ed -s $DEST/Applications/MacPython-$PYVER/$app.app/Contents/MacOS/$app << xyzzy |
| 1c |
| #!$installed_python |
| . |
| w |
| q |
| xyzzy |
| ed -s $DEST/Library/Frameworks/Python.framework/Versions/$PYVER/bin/pydoc << xyzzy |
| 1c |
| #!$installed_python |
| . |
| w |
| q |
| xyzzy |
| done |
| fi |