whisper-dictation/build.py

41 lines
1.3 KiB
Python

# build.py
import os
import shutil
import sys
import subprocess
from PIL import Image
def generate_icon():
"""Generate icon.ico from tray icon colors (green dot on transparent)."""
sizes = [16, 32, 48, 256]
frames = []
for size in sizes:
img = Image.new("RGBA", (size, size), (0, 0, 0, 0))
from PIL import ImageDraw
d = ImageDraw.Draw(img)
margin = max(1, size // 16)
d.ellipse([margin, margin, size - margin, size - margin], fill=(40, 200, 80))
frames.append(img)
frames[0].save("icon.ico", format="ICO", sizes=[(s, s) for s in sizes],
append_images=frames[1:])
print("icon.ico generated.")
def build():
generate_icon()
subprocess.run([sys.executable, "-m", "PyInstaller", "whisper-dictation.spec",
"--noconfirm"], check=True)
dist_dir = os.path.join("dist", "whisper-dictation")
for fname in ["config.json", "vocabulary.json"]:
dest = os.path.join(dist_dir, fname)
if not os.path.exists(dest):
shutil.copy(fname, dest)
print(f"Copied {fname} -> {dist_dir}/")
else:
print(f"Skipped {fname} (already exists in dist — preserving user edits)")
print(f"\nBuild complete: {dist_dir}/")
if __name__ == "__main__":
build()