#!/bin/sh
set -eu

LOCK_FILE=/var/www/html/composer.lock
VENDOR_MARKER=/var/www/html/vendor/.wtl-composer-lock.sha256

if [ -f "$LOCK_FILE" ]; then
    CURRENT_HASH="$(sha256sum "$LOCK_FILE" | awk '{print $1}')"
    STORED_HASH=""
    [ -f "$VENDOR_MARKER" ] && STORED_HASH="$(cat "$VENDOR_MARKER" 2>/dev/null || true)"

    if [ ! -f /var/www/html/vendor/autoload.php ] || [ "$CURRENT_HASH" != "$STORED_HASH" ]; then
        echo "[WTL] Synchronisation du vendor Docker..."
        rm -rf /var/www/html/vendor/* /var/www/html/vendor/.[!.]* /var/www/html/vendor/..?* 2>/dev/null || true
        cp -a /opt/wtl-vendor/. /var/www/html/vendor/
        # Si composer.lock a changé depuis le build, Composer remet le volume à jour.
        BUILT_HASH="$(sha256sum /opt/wtl-build/composer.lock | awk '{print $1}')"
        if [ "$CURRENT_HASH" != "$BUILT_HASH" ]; then
            COMPOSER_ALLOW_SUPERUSER=1 composer install --working-dir=/var/www/html --prefer-dist --no-interaction --no-progress
        fi
        printf '%s' "$CURRENT_HASH" > "$VENDOR_MARKER"
    fi
fi

mkdir -p /var/www/html/var/cache /var/www/html/var/log
chown -R www-data:www-data /var/www/html/var || true

exec "$@"
