#!/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