E41222753_NinikYuniarsih_Ju.../build_exe.bat

98 lines
2.0 KiB
Batchfile

@echo off
setlocal
cd /d "%~dp0"
echo ================================================
echo Build EXE - Sistem Klasifikasi Jurusan Siswa
echo ================================================
python --version >nul 2>&1
if errorlevel 1 (
echo [ERROR] Python tidak ditemukan di PATH.
pause
exit /b 1
)
python -m pip install --upgrade pip
if errorlevel 1 (
echo [ERROR] Gagal update pip.
pause
exit /b 1
)
python -m pip install -r requirements.txt
if errorlevel 1 (
echo [ERROR] Gagal install dependency dari requirements.txt.
pause
exit /b 1
)
python -m pip install pyinstaller
if errorlevel 1 (
echo [ERROR] Gagal install pyinstaller.
pause
exit /b 1
)
echo Menutup proses jurusify.exe jika masih berjalan...
taskkill /F /IM jurusify.exe >nul 2>&1
echo Menyiapkan ikon logo_sekolah.ico...
python convert_logo.py
if not exist "img\logo_sekolah.png" (
echo [ERROR] Ikon wajib tidak ditemukan: img\logo_sekolah.png
echo [ERROR] Build dibatalkan agar EXE tidak memakai ikon default.
pause
exit /b 1
)
if exist build (
rmdir /s /q build
if exist build (
echo [ERROR] Folder build tidak bisa dihapus. Tutup aplikasi/Explorer yang sedang membuka file build lalu coba lagi.
pause
exit /b 1
)
)
if exist dist (
rmdir /s /q dist
if exist dist (
echo [ERROR] Folder dist tidak bisa dihapus. Pastikan jurusify.exe sudah ditutup lalu coba lagi.
pause
exit /b 1
)
)
if exist "SistemKlasifikasiJurusan.spec" del /q "SistemKlasifikasiJurusan.spec"
if exist "jurusify.spec" del /q "jurusify.spec"
pyinstaller ^
--noconfirm ^
--clean ^
--windowed ^
--name "jurusify" ^
--icon "%CD%\img\logo_sekolah.png" ^
--add-data "data;data" ^
--add-data "models;models" ^
--add-data "img;img" ^
main.py
if errorlevel 1 (
echo [ERROR] Build gagal.
pause
exit /b 1
)
echo.
echo [OK] Build selesai.
echo Hasil ada di: dist\jurusify\
echo Jalankan: dist\jurusify\jurusify.exe
echo.
echo [PENTING] Jangan jalankan file EXE dari folder build\
echo [PENTING] Jalankan EXE hanya dari folder dist\jurusify\
echo.
pause