run_linux.sh 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. #!/bin/bash
  2. # Trixy Startskript (Linux)
  3. # Fuehrt Update, Bereinigung und Anwendungsstart durch.
  4. #
  5. # Verwendung: ./run_linux.sh server [--auto-regist] [--debug]
  6. # ./run_linux.sh client --host 10.10.10.1 --port 2101 ...
  7. set -euo pipefail
  8. # Ins Projektverzeichnis wechseln
  9. SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
  10. cd "${SCRIPT_DIR}" || exit 1
  11. # venv suchen und aktivieren
  12. VENV_PYTHON=""
  13. for venv_path in "${SCRIPT_DIR}/../venv" "${SCRIPT_DIR}/venv" "/home/$(whoami)/trixy/venv"; do
  14. if [[ -f "${venv_path}/bin/python" ]]; then
  15. source "${venv_path}/bin/activate"
  16. VENV_PYTHON="${venv_path}/bin/python"
  17. break
  18. fi
  19. done
  20. # Fallback: System-Python
  21. if [[ -z "${VENV_PYTHON}" ]]; then
  22. VENV_PYTHON="$(command -v python3 2>/dev/null || command -v python 2>/dev/null || true)"
  23. if [[ -z "${VENV_PYTHON}" ]]; then
  24. echo "FEHLER: Python nicht gefunden (kein venv, kein System-Python)"
  25. exit 127
  26. fi
  27. echo "WARNUNG: Kein venv gefunden — verwende System-Python: ${VENV_PYTHON}"
  28. fi
  29. # Update ausfuehren (Fehler nicht abbrechen)
  30. if [[ -f bash/update_linux.sh ]]; then
  31. bash bash/update_linux.sh || echo "WARNUNG: Update fehlgeschlagen"
  32. fi
  33. # Temporaere Dateien bereinigen
  34. if [[ -f bash/prepare_linux.sh ]]; then
  35. bash bash/prepare_linux.sh || true
  36. fi
  37. # Anwendung starten (alle Argumente durchreichen)
  38. exec "${VENV_PYTHON}" main.py "$@"