diff options
Diffstat (limited to 'release/rtool.py')
-rwxr-xr-x | release/rtool.py | 114 |
1 files changed, 0 insertions, 114 deletions
diff --git a/release/rtool.py b/release/rtool.py deleted file mode 100755 index 0009cf89..00000000 --- a/release/rtool.py +++ /dev/null @@ -1,114 +0,0 @@ -#!/usr/bin/env python3 - -import contextlib -import os -import sys -import platform -import runpy -import shlex -import subprocess -from os.path import join, abspath, dirname - -import cryptography.fernet -import click - - -ROOT_DIR = abspath(join(dirname(__file__), "..")) -RELEASE_DIR = join(ROOT_DIR, "release") -DIST_DIR = join(RELEASE_DIR, "dist") -VERSION_FILE = join(ROOT_DIR, "mitmproxy", "version.py") - - -def git(args: str) -> str: - with chdir(ROOT_DIR): - return subprocess.check_output(["git"] + shlex.split(args)).decode() - - -def get_version(dev: bool = False, build: bool = False) -> str: - x = runpy.run_path(VERSION_FILE) - return x["get_version"](dev, build, True) - - -def wheel_name() -> str: - return "mitmproxy-{version}-py3-none-any.whl".format( - version=get_version(True), - ) - - -@contextlib.contextmanager -def chdir(path: str): - old_dir = os.getcwd() - os.chdir(path) - yield - os.chdir(old_dir) - - -@click.group(chain=True) -def cli(): - """ - mitmproxy build tool - """ - pass - - -@cli.command("contributors") -def contributors(): - """ - Update CONTRIBUTORS.md - """ - with chdir(ROOT_DIR): - print("Updating CONTRIBUTORS...") - contributors_data = git("shortlog -n -s") - with open("CONTRIBUTORS", "wb") as f: - f.write(contributors_data.encode()) - - -@cli.command("upload-release") -@click.option('--username', prompt=True) -@click.password_option(confirmation_prompt=False) -@click.option('--repository', default="pypi") -def upload_release(username, password, repository): - """ - Upload wheels to PyPI - """ - filename = wheel_name() - print("Uploading {} to {}...".format(filename, repository)) - subprocess.check_call([ - "twine", - "upload", - "-u", username, - "-p", password, - "-r", repository, - join(DIST_DIR, filename) - ]) - - -@cli.command("homebrew-pr") -def homebrew_pr(): - """ - Create a new Homebrew PR - """ - if platform.system() != "Darwin": - print("You need to run this on macOS to create a new Homebrew PR. Sorry.") - sys.exit(1) - - print("Creating a new PR with Homebrew...") - subprocess.check_call([ - "brew", - "bump-formula-pr", - "--url", "https://github.com/mitmproxy/mitmproxy/archive/v{}".format(get_version()), - "mitmproxy", - ]) - - -@cli.command("encrypt") -@click.argument('infile', type=click.File('rb')) -@click.argument('outfile', type=click.File('wb')) -@click.argument('key', envvar='RTOOL_KEY') -def encrypt(infile, outfile, key): - f = cryptography.fernet.Fernet(key.encode()) - outfile.write(f.encrypt(infile.read())) - - -if __name__ == "__main__": - cli() |