diff --git a/osx-binaries b/osx-binaries deleted file mode 100755 index 2d1acccc7..000000000 --- a/osx-binaries +++ /dev/null @@ -1,60 +0,0 @@ -#!/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 -PYINST_CMD="$VENV/bin/pyinstaller -F --clean" -TMPDIR=./tmp -CACHE="~/Library/Application Support/pyinstaller" -MITMPROXY="../mitmproxy" - - -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 - -echo "Clearing caches..." -rm -f dist/* -rm -rf $TMPDIR -rm -rf $CACHE - -# $PYINST_CMD $MITMPROXY/release/mitmdump.spec -# echo "Running mitmdump..." -# ./dist/mitmdump --version || exit 1 - -$PYINST_CMD $MITMPROXY/release/mitmproxy.spec -echo "Running mitmproxy..." -./dist/mitmproxy --version || exit 1 - -# $PYINST_CMD $MITMPROXY/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 diff --git a/rtool b/rtool index 3c47fc6cc..037dcf439 100755 --- a/rtool +++ b/rtool @@ -12,6 +12,7 @@ import glob import re import shlex import runpy +import pprint import click @@ -42,15 +43,21 @@ VENV_PYINSTALLER = join(VENV_DIR, VENV_BIN, "pyinstaller") PROJECTS = { "netlib": { "tools": [], - "vfile": join(ROOT_DIR, "netlib/netlib/version.py") + "vfile": join(ROOT_DIR, "netlib/netlib/version.py"), + "version": None, + "dir": None }, "pathod": { "tools": ["pathod", "pathoc"], - "vfile": join(ROOT_DIR, "pathod/libpathod/version.py") + "vfile": join(ROOT_DIR, "pathod/libpathod/version.py"), + "version": None, + "dir": None }, "mitmproxy": { "tools": ["mitmproxy", "mitmdump", "mitmweb"], - "vfile": join(ROOT_DIR, "mitmproxy/libmproxy/version.py") + "vfile": join(ROOT_DIR, "mitmproxy/libmproxy/version.py"), + "version": None, + "dir": None } } if os.name == "nt": @@ -201,42 +208,53 @@ def sdist(projects): @cli.command("osxbin") @click.option( '--project', '-p', 'projects', - multiple=True, type=click.Choice(PROJECTS.keys()), default=PROJECTS.keys() + multiple=True, + type=click.Choice(PROJECTS.keys()), + default=PROJECTS.keys() ) @click.pass_context def osxbin(ctx, projects): if not os.path.exists(VENV_PYINSTALLER): - subprocess.check_call( - [ - VENV_PIP, - "install", - PYINSTALLER_URL - ] - ) + print("Instaling PyInstaller...") + subprocess.check_call( + [ + VENV_PIP, + "install", + PYINSTALLER_URL + ] + ) shutil.rmtree(PYINSTALLER_CACHE, ignore_errors=True) shutil.rmtree("./build", ignore_errors=True) shutil.rmtree(PYINSTALLER_DIST, ignore_errors=True) for p, conf in proj(projects): specs = glob.glob(os.path.join(conf["dir"], "release/*.spec")) - for spec in specs: - subprocess.check_call( - [ - VENV_PYINSTALLER, - "--distpath", PYINSTALLER_DIST, - spec - ] - ) - if specs and os.path.exists(PYINSTALLER_DIST): - bins = os.listdir(PYINSTALLER_DIST) - for bin in bins: + if specs: + for spec in specs: subprocess.check_call( [ - os.path.join(PYINSTALLER_DIST, bin), - "--version" + VENV_PYINSTALLER, + "--distpath", PYINSTALLER_DIST, + spec ] ) + bins = os.listdir(PYINSTALLER_DIST) + base = os.path.join(DIST_DIR, "osx-" + p + "-" + conf["version"]) + shutil.rmtree(base, ignore_errors=True) + os.makedirs(base) + for bin in bins: + bin = os.path.join(PYINSTALLER_DIST, bin) + subprocess.check_call([bin, "--version"]) + shutil.move(bin, base) + subprocess.check_call( + [ + "tar", + "-czvf", + base + ".tgz", + base + ] + ) @cli.command("mkvenv")