#!/bin/sh

# Copyright © Michal Čihař <michal@weblate.org>
#
# SPDX-License-Identifier: GPL-3.0-or-later

set -e

cd /app/src

install_deps() {
    uv pip install \
        --no-config \
        --no-binary xmlsec \
        --no-binary lxml \
        -r /tmp/requirements.txt \
        supervisor
}

# Prune unused uv cache entries
uv cache prune

echo "Exporting Weblate requirements..."
uv export --no-config --format requirements-txt --python "python${PYVERSION}" --all-extras > /tmp/requirements.txt

echo "Checking /app/venv..."
if [ ! -f /app/venv/bin/activate ]; then
    uv venv --no-config /app/venv
fi
echo "/app/data/python" > "/app/venv/lib/python${PYVERSION}/site-packages/weblate-docker.pth"
# shellcheck disable=SC1091
. /app/venv/bin/activate

echo "Installing Weblate requirements..."
install_deps
if ! python -c "import xmlsec" 2> /dev/null; then
    # Clean uv cache in case lxml does not work (typically caused by
    # upgrade of underlying system or otherwise mixed up libxml versions)
    uv cache clean
    install_deps
fi

echo "Starting Weblate..."
exec /app/bin/start "$@"
