67 lines
1.7 KiB
Bash
Executable File
67 lines
1.7 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
# Quick and dangerous script for building OSX binaries.
|
|
|
|
# At the moment, pyinstaller has no support for entry points, except for this
|
|
# hideous hack on the wiki:
|
|
# https://github.com/pyinstaller/pyinstaller/wiki/Recipe-Setuptools-Entry-Point
|
|
# Once this is fixed, we can ditch the redundant command scripts.
|
|
|
|
VENV=../venv.mitmproxy
|
|
PYINST_CMD="$VENV/bin/pyinstaller -F --clean"
|
|
TMPDIR=./tmp
|
|
CACHE="~/Library/Application Support/pyinstaller"
|
|
|
|
|
|
if [ ! -d $VENV ]
|
|
then
|
|
echo "Failed: set up a dev environment as described in the README"
|
|
echo "and run from the top-level mitmproxy directory."
|
|
exit
|
|
fi
|
|
|
|
source $VENV/bin/activate
|
|
|
|
if [ ! -f $VENV/bin/pyinstaller ]
|
|
then
|
|
echo "Installing pyinstaller..."
|
|
$VENV/bin/pip install \
|
|
--force-reinstall \
|
|
--upgrade \
|
|
https://github.com/pyinstaller/pyinstaller/archive/develop.zip
|
|
$VENV/bin/pip install --upgrade macholib
|
|
fi
|
|
|
|
# readline.so is actually a symlink to a Python file, which breaks PyInstaller
|
|
# (and readline itself). Why? Who knows. Re-address this when this stupidity
|
|
# ceases to be.
|
|
echo "Removing broken readline..."
|
|
rm -f $VENV/lib/python2.7/readline.so
|
|
|
|
|
|
echo "Clearing caches..."
|
|
rm -f dist/*
|
|
rm -rf $TMPDIR
|
|
rm -rf $CACHE
|
|
|
|
$PYINST_CMD ./release/mitmdump.spec
|
|
echo "Running mitmdump..."
|
|
./dist/mitmdump --version || exit 1
|
|
|
|
$PYINST_CMD ./release/mitmproxy.spec
|
|
echo "Running mitmproxy..."
|
|
./dist/mitmproxy --version || exit 1
|
|
|
|
$PYINST_CMD ./release/mitmweb.spec
|
|
echo "Running mitmweb..."
|
|
./dist/mitmweb --version || exit 1
|
|
|
|
DST=osx-mitmproxy-`./dist/mitmdump --shortversion 2>&1`
|
|
mkdir -p $TMPDIR/$DST
|
|
cp ./dist/mitmproxy $TMPDIR/$DST
|
|
cp ./dist/mitmdump $TMPDIR/$DST
|
|
cshape ./doc-src $TMPDIR/$DST/doc
|
|
|
|
cd $TMPDIR
|
|
tar -czvf $DST.tar.gz $DST
|