#!/bin/bash # PDF zu ICS Konverter - GUI Startskript SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" cd "$SCRIPT_DIR" # Finde Python-Executable PYTHON_CMD="" if command -v python3 &> /dev/null; then PYTHON_CMD="python3" elif command -v python &> /dev/null; then PYTHON_CMD="python" else echo "❌ Fehler: Python nicht gefunden!" echo "Bitte installieren Sie Python 3.6 oder höher." exit 1 fi echo "🐍 Nutze: $PYTHON_CMD" # Erstelle venv wenn nicht vorhanden if [ ! -d ".venv" ]; then echo "📦 Python-Umgebung wird eingerichtet..." $PYTHON_CMD -m venv .venv --upgrade-deps || { echo "❌ venv konnte nicht erstellt werden" exit 1 } fi # Nutze Python aus venv PYTHON_VENV=".venv/bin/python" # Überprüfe, ob Abhängigkeiten installiert sind if ! $PYTHON_VENV -c "import pdfplumber" 2>/dev/null; then echo "📚 Installiere Abhängigkeiten..." if $PYTHON_VENV -m pip install -q pdfplumber icalendar pypdf2 pytz 2>/dev/null; then echo "✓ Abhängigkeiten installiert" else echo "❌ Installation fehlgeschlagen" echo "🔧 Versuche venv neu aufzubauen..." rm -rf .venv $PYTHON_CMD -m venv .venv --upgrade-deps || { echo "❌ venv konnte nicht neu erstellt werden" exit 1 } $PYTHON_VENV -m pip install -q pdfplumber icalendar pypdf2 pytz || { echo "❌ Abhängigkeiten konnten nicht installiert werden" exit 1 } echo "✓ venv neu erstellt" fi fi # Versuche tkinterdnd2 zu installieren (optional für Drag & Drop) if ! $PYTHON_VENV -c "import tkinterdnd2" 2>/dev/null; then echo "💡 Installiere tkinterdnd2 für Drag & Drop (optional)..." $PYTHON_VENV -m pip install -q tkinterdnd2 2>/dev/null && echo "✓ Drag & Drop aktiviert" || echo "ℹ️ Drag & Drop nicht verfügbar (kein Problem)" fi # Starte die GUI echo "🎨 Starte GUI..." if [ -f "$PYTHON_VENV" ]; then $PYTHON_VENV gui.py else echo "❌ Fehler: Python-Umgebung ist beschädigt" echo "📁 Bitte löschen Sie das .venv Verzeichnis und versuchen Sie erneut:" echo " rm -rf .venv" echo " ./start_gui.sh" exit 1 fi