38 lines
1.1 KiB
Bash
Executable File
38 lines
1.1 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Startet das Habegger Loader Game.
|
|
#
|
|
# Beim ersten Start wird eine lokale virtuelle Umgebung (.venv) angelegt und
|
|
# requirements.txt installiert. Ändert sich requirements.txt, wird neu
|
|
# installiert. Alle Argumente werden an main.py weitergegeben, z. B.:
|
|
#
|
|
# ./run.sh --windowed
|
|
# ./run.sh --name "Anna" --seed 42
|
|
#
|
|
# Getestet auf macOS (arm64) und Linux.
|
|
set -euo pipefail
|
|
cd "$(dirname "$0")"
|
|
|
|
VENV=".venv"
|
|
PYTHON="${PYTHON:-python3}"
|
|
STAMP="$VENV/.requirements.sha256"
|
|
|
|
if [ ! -x "$VENV/bin/python" ]; then
|
|
echo "→ Lege virtuelle Umgebung an ($("$PYTHON" --version 2>&1))"
|
|
"$PYTHON" -m venv "$VENV"
|
|
fi
|
|
|
|
if command -v shasum >/dev/null 2>&1; then
|
|
REQ_HASH="$(shasum -a 256 requirements.txt | cut -d' ' -f1)"
|
|
else
|
|
REQ_HASH="$(sha256sum requirements.txt | cut -d' ' -f1)"
|
|
fi
|
|
|
|
if [ ! -f "$STAMP" ] || [ "$(cat "$STAMP")" != "$REQ_HASH" ]; then
|
|
echo "→ Installiere Abhängigkeiten aus requirements.txt"
|
|
"$VENV/bin/python" -m pip install --quiet --upgrade pip
|
|
"$VENV/bin/python" -m pip install --quiet -r requirements.txt
|
|
echo "$REQ_HASH" >"$STAMP"
|
|
fi
|
|
|
|
exec "$VENV/bin/python" main.py "$@"
|