60 lines
1.5 KiB
Python
60 lines
1.5 KiB
Python
from pathlib import Path
|
|
import platform
|
|
|
|
from PyInstaller.building.api import PYZ, EXE, COLLECT
|
|
from PyInstaller.building.build_main import Analysis
|
|
|
|
here = Path(r".")
|
|
tools = ["mitmproxy", "mitmdump", "mitmweb"]
|
|
|
|
if platform.system() == "Darwin":
|
|
icon = "icon.icns"
|
|
else:
|
|
icon = "icon.ico"
|
|
|
|
analysis = Analysis(
|
|
tools,
|
|
excludes=["tcl", "tk", "tkinter"],
|
|
pathex=[str(here)],
|
|
)
|
|
|
|
pyz = PYZ(analysis.pure, analysis.zipped_data)
|
|
executables = []
|
|
for tool in tools:
|
|
executables.append(EXE(
|
|
pyz,
|
|
# analysis.scripts has all runtime hooks and all of our tools.
|
|
# remove the other tools.
|
|
[s for s in analysis.scripts if s[0] not in tools or s[0] == tool],
|
|
[],
|
|
exclude_binaries=True,
|
|
name=tool,
|
|
console=True,
|
|
upx=False,
|
|
icon=icon,
|
|
codesign_identity='Developer ID Application',
|
|
entitlements_file=str(here / "macos-entitlements.plist"),
|
|
))
|
|
|
|
coll = COLLECT(
|
|
*executables,
|
|
analysis.binaries,
|
|
analysis.zipfiles,
|
|
analysis.datas,
|
|
strip=False,
|
|
upx=False,
|
|
name="onedir"
|
|
)
|
|
|
|
if platform.system() == "Darwin":
|
|
from PyInstaller.building.osx import BUNDLE
|
|
app = BUNDLE(
|
|
# hack: add dummy executable that opens the terminal,
|
|
# workaround for https://github.com/pyinstaller/pyinstaller/pull/5419
|
|
[(".mitmproxy-wrapper", str(here / ".mitmproxy-wrapper"), "EXECUTABLE")],
|
|
coll,
|
|
name='mitmproxy.app',
|
|
icon=icon,
|
|
bundle_identifier="org.mitmproxy",
|
|
)
|