#!/usr/bin/env bash
# 04-composer — instala o vendor antes de subir o app. `--no-scripts` porque o package
# discovery roda DEPOIS (com APP_KEY e banco), na fase 06.
set -Eeuo pipefail
# shellcheck source=../lib/common.sh
. "$(dirname "$0")/../lib/common.sh"

phase_begin "04-composer"

if [ ! -f "$ROOT/composer.lock" ]; then
    die "composer.lock ausente: sem lockfile não há instalação reprodutível."
fi

run docker run --rm \
    --entrypoint composer \
    --user "$(id -u):$(id -g)" \
    -e HOME=/tmp \
    -v "$ROOT":/var/www/html"$MOUNT_LABEL" \
    -w /var/www/html \
    "$PHP_IMAGE:$PHP_TAG" \
    install --no-dev --no-scripts --prefer-dist --no-progress \
    --optimize-autoloader --classmap-authoritative --no-interaction

if [ "$DRY_RUN" = 0 ] && [ ! -f "$ROOT/vendor/autoload.php" ]; then
    die "composer install não produziu vendor/autoload.php"
fi

phase_end
