#!/bin/bash
# =============================================================================
# x-odos — der richtige Python-Interpreter (F23)
# =============================================================================
# Auf Fedora 23 gibt es ZWEI Interpreter:
#
#   /usr/bin/python3           System-Python 3.4 (2015) — hier liegen KEINE
#                              der benoetigten Zusatzmodule
#   /usr/local/bin/python3.8   selbst gebaut, siehe install/build-python38-f23.sh
#                              — hier liegen taglib, pymysql, mutagen, pyusb,
#                              blinkstick, requests ...
#
# Fast alle x-odos-Skripte brauchen den 3.8er. Trotzdem stand an mehreren
# Stellen fest "/bin/python3" oder gar "/bin/python" (Python 2). Die Folge war
# jedes Mal dieselbe: Der Aufruf stirbt mit ImportError, der Aufrufer merkt es
# nicht, und eine Funktion fehlt lautlos — die Ripp-History blieb leer, der
# Metadaten-Dienst startete nie, Playlisten wurden nicht auf USB kopiert.
#
# Diese Huelle waehlt den ersten brauchbaren Interpreter und startet damit das
# uebergebene Skript. Sie ist als ExecStart in Units verwendbar.
#
#   /opt/x-stream/xo-python /opt/database/id3.py [Argumente ...]
#   /opt/x-stream/xo-python -c "import taglib"
#
# Mit XO_PYTHON=/pfad/zum/python laesst sich die Auswahl ueberstimmen.
# =============================================================================

if [ -n "${XO_PYTHON:-}" ] && [ -x "$XO_PYTHON" ]; then
    exec "$XO_PYTHON" "$@"
fi

# Reihenfolge: zuerst der aus dem Paket x-odos-python38 (/opt/xo-python38),
# dann eine vorhandene Handinstallation unter /usr/local, zuletzt das
# System-Python. So laufen Bestandsgeraete unveraendert weiter, neue bekommen
# den paketierten Interpreter.
for p in /opt/xo-python38/bin/python3.8 /usr/local/bin/python3.8 /usr/local/bin/python3 /usr/bin/python3; do
    [ -x "$p" ] && exec "$p" "$@"
done

echo "xo-python: kein Python-3-Interpreter gefunden" >&2
exit 127
