93 lines
2.9 KiB
Bash
Executable File
93 lines
2.9 KiB
Bash
Executable File
#!/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
|