last update
This commit is contained in:
96
scripts/build_exe.sh
Executable file
96
scripts/build_exe.sh
Executable file
@@ -0,0 +1,96 @@
|
||||
#!/bin/bash
|
||||
# Build script for EBoek.info Scraper executable
|
||||
# Run this script to compile the application into a standalone executable
|
||||
|
||||
echo "====================================="
|
||||
echo "Building EBoek.info Scraper"
|
||||
echo "====================================="
|
||||
echo
|
||||
|
||||
# Check if PyInstaller is installed
|
||||
python3 -c "import PyInstaller" 2>/dev/null
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "Installing PyInstaller..."
|
||||
python3 -m pip install pyinstaller
|
||||
echo
|
||||
fi
|
||||
|
||||
# Clean previous builds
|
||||
if [ -d "dist" ]; then
|
||||
rm -rf "dist"
|
||||
fi
|
||||
if [ -d "build" ]; then
|
||||
rm -rf "build"
|
||||
fi
|
||||
echo "Cleaned previous builds"
|
||||
echo
|
||||
|
||||
# Option 1: Quick build (single file executable)
|
||||
echo "Building single-file executable..."
|
||||
echo "This may take a few minutes..."
|
||||
echo
|
||||
|
||||
python3 -m PyInstaller --onefile --windowed --name "EBoek_Scraper" \
|
||||
--hidden-import "PyQt5.QtCore" \
|
||||
--hidden-import "PyQt5.QtGui" \
|
||||
--hidden-import "PyQt5.QtWidgets" \
|
||||
--hidden-import "selenium" \
|
||||
--hidden-import "selenium.webdriver" \
|
||||
--hidden-import "selenium.webdriver.chrome" \
|
||||
--hidden-import "core.scraper" \
|
||||
--hidden-import "core.scraper_thread" \
|
||||
--hidden-import "core.credentials" \
|
||||
--hidden-import "gui.main_window" \
|
||||
--hidden-import "gui.login_dialog" \
|
||||
--hidden-import "gui.progress_dialog" \
|
||||
--hidden-import "utils.validators" \
|
||||
--exclude-module "tkinter" \
|
||||
--exclude-module "matplotlib" \
|
||||
../gui_main.py
|
||||
|
||||
if [ $? -ne 0 ]; then
|
||||
echo
|
||||
echo "BUILD FAILED! Trying alternative method..."
|
||||
echo
|
||||
|
||||
# Option 2: Use spec file
|
||||
echo "Building with spec file..."
|
||||
python3 -m PyInstaller eboek_scraper.spec
|
||||
|
||||
if [ $? -ne 0 ]; then
|
||||
echo "BUILD FAILED!"
|
||||
echo "Please check the error messages above."
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
echo
|
||||
echo "====================================="
|
||||
echo "BUILD SUCCESSFUL!"
|
||||
echo "====================================="
|
||||
echo
|
||||
|
||||
# Check which executable was created
|
||||
if [ -f "dist/EBoek_Scraper" ]; then
|
||||
EXECUTABLE="dist/EBoek_Scraper"
|
||||
echo "Your executable is located at: $EXECUTABLE"
|
||||
echo
|
||||
echo "File size: $(du -h "$EXECUTABLE" | cut -f1)"
|
||||
echo
|
||||
echo "To run: ./$EXECUTABLE"
|
||||
elif [ -f "dist/EBoek_Scraper.exe" ]; then
|
||||
EXECUTABLE="dist/EBoek_Scraper.exe"
|
||||
echo "Your executable is located at: $EXECUTABLE"
|
||||
echo
|
||||
echo "File size: $(du -h "$EXECUTABLE" | cut -f1)"
|
||||
echo
|
||||
echo "To run: ./$EXECUTABLE"
|
||||
else
|
||||
echo "Error: Could not find built executable!"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo
|
||||
echo "You can now distribute this single file!"
|
||||
echo "Note: macOS may show a security warning on first run."
|
||||
echo "Right-click and select 'Open' to bypass Gatekeeper."
|
||||
Reference in New Issue
Block a user