Create platform-specific startup scripts
(self, portable_dir: Path)
| 558 | return False |
| 559 | |
| 560 | def _create_startup_scripts(self, portable_dir: Path) -> None: |
| 561 | """Create platform-specific startup scripts""" |
| 562 | |
| 563 | # Windows batch script |
| 564 | win_script = f'''@echo off |
| 565 | chcp 65001 >nul |
| 566 | title {PROJECT_NAME} v{VERSION} |
| 567 | echo. |
| 568 | echo ======================================== |
| 569 | echo {PROJECT_NAME} v{VERSION} |
| 570 | echo {DESCRIPTION} |
| 571 | echo Author: {AUTHOR} |
| 572 | echo ======================================== |
| 573 | echo. |
| 574 | python --version >nul 2>&1 |
| 575 | if errorlevel 1 ( |
| 576 | echo ERROR: Python not found! |
| 577 | echo Please install Python 3.7+ from https://python.org |
| 578 | pause |
| 579 | exit /b 1 |
| 580 | ) |
| 581 | echo Starting GUI... |
| 582 | python main.py |
| 583 | pause |
| 584 | ''' |
| 585 | |
| 586 | with open(portable_dir / f'Start-{PROJECT_NAME}.bat', 'w', encoding='utf-8') as f: |
| 587 | f.write(win_script) |
| 588 | |
| 589 | # Unix shell script |
| 590 | unix_script = f'''#!/bin/bash |
| 591 | echo "========================================" |
| 592 | echo " {PROJECT_NAME} v{VERSION}" |
| 593 | echo " {DESCRIPTION}" |
| 594 | echo " Author: {AUTHOR}" |
| 595 | echo "========================================" |
| 596 | echo |
| 597 | |
| 598 | if ! command -v python3 &> /dev/null && ! command -v python &> /dev/null; then |
| 599 | echo "ERROR: Python not found!" |
| 600 | echo "Please install Python 3.7+" |
| 601 | exit 1 |
| 602 | fi |
| 603 | |
| 604 | PYTHON_CMD="python3" |
| 605 | if ! command -v python3 &> /dev/null; then |
| 606 | PYTHON_CMD="python" |
| 607 | fi |
| 608 | |
| 609 | echo "Starting GUI..." |
| 610 | $PYTHON_CMD main.py |
| 611 | ''' |
| 612 | |
| 613 | script_path = portable_dir / f'start-{PROJECT_NAME.lower()}.sh' |
| 614 | with open(script_path, 'w', encoding='utf-8') as f: |
| 615 | f.write(unix_script) |
| 616 | |
| 617 | # Make executable on Unix systems |
no outgoing calls
no test coverage detected