Stock-Tool/build.bat

94 lines
2.7 KiB
Batchfile

@echo off
cd /d "%~dp0"
echo ======================================
echo Ultimate Investment Tool - Build EXE
echo ======================================
echo.
echo Installing dependencies...
python -m pip install pyinstaller tinyaes matplotlib --quiet
if errorlevel 1 (
echo ERROR: pip failed. Make sure Python is installed and on PATH.
pause
exit /b 1
)
echo.
echo Copying source files from dist\ for bundling...
copy /Y dist\screener_gui.py screener_gui.py >nul
copy /Y dist\stock_screener.py stock_screener.py >nul
echo Building executable...
echo.
python -m PyInstaller ^
--onefile ^
--windowed ^
--key "UIT-K3y-2025-Ultr4Inv3st" ^
--name "StockScreener" ^
--hidden-import pandas ^
--hidden-import numpy ^
--hidden-import yfinance ^
--hidden-import requests ^
--hidden-import lxml ^
--hidden-import lxml.etree ^
--hidden-import html5lib ^
--hidden-import bs4 ^
--hidden-import appdirs ^
--hidden-import platformdirs ^
--hidden-import tkinter ^
--hidden-import tkinter.ttk ^
--hidden-import tkinter.messagebox ^
--hidden-import screener_gui ^
--hidden-import stock_screener ^
--hidden-import matplotlib ^
--hidden-import matplotlib.backends.backend_tkagg ^
--hidden-import matplotlib.figure ^
--hidden-import matplotlib.dates ^
--hidden-import matplotlib.ticker ^
--hidden-import winreg ^
--hidden-import hwid ^
--hidden-import license_check ^
--hidden-import activation_dialog ^
--hidden-import updater ^
--collect-all yfinance ^
--collect-all matplotlib ^
launcher.py
if errorlevel 1 (
echo.
echo BUILD FAILED. See errors above.
echo.
echo NOTE: If the error mentions '--key' or 'tinyaes', your PyInstaller version
echo may not support bytecode encryption. Remove the '--key' line above
echo and rebuild. Encryption requires PyInstaller 5.x + tinyaes.
echo.
echo Cleaning up temporary files...
if exist screener_gui.py del screener_gui.py
if exist stock_screener.py del stock_screener.py
pause
exit /b 1
)
echo.
echo Cleaning up temporary source copies from project root...
if exist screener_gui.py del screener_gui.py
if exist stock_screener.py del stock_screener.py
echo.
echo ======================================
echo SUCCESS!
echo.
echo Folder: dist\
echo - StockScreener.exe (distribute this)
echo - screener_gui.py (distribute alongside exe)
echo - stock_screener.py (distribute alongside exe)
echo.
echo DO NOT distribute:
echo - issue_license.py (admin only)
echo - supabase_schema.sql (admin only)
echo - hwid.py / license_check.py / updater.py / activation_dialog.py
echo (these are bundled inside the exe)
echo ======================================
pause