#!/usr/bin/env bash
# Run Composer for both PHP 7.4 and 8.3, keeping separate composer.json/composer.lock copies.
# Usage:
#   ./scripts/composer-both.sh require vendor/package [vendor/package2 ...]
#   ./scripts/composer-both.sh update
set -e
cd "$(dirname "$0")/.."

if [ $# -eq 0 ]; then
  echo "Usage: $0 require <package> [package2 ...]  OR  $0 update"
  exit 1
fi
CMD="$1"

echo "=== PHP 8.3: restore composer.json/composer.lock from 8.3 copies (if any) ==="
if [ -f composer.json.83 ]; then
  cp composer.json.83 composer.json
fi
if [ -f composer.lock.83 ]; then
  cp composer.lock.83 composer.lock
fi

echo "=== PHP 8.3: composer $* ==="
docker compose --profile php83 run --rm app-83-php composer "$@"
cp composer.json composer.json.83
cp composer.lock composer.lock.83
echo "Saved composer.json.83 and composer.lock.83"

echo "=== PHP 7.4: restore composer.json/composer.lock from 7.4 copies (if any) ==="
if [ -f composer.json.74 ]; then
  cp composer.json.74 composer.json
fi
if [ -f composer.lock.74 ]; then
  cp composer.lock.74 composer.lock
fi

echo "=== PHP 7.4: composer $* ==="
docker compose --profile php74 run --rm app-74 composer "$@"
cp composer.json composer.json.74
cp composer.lock composer.lock.74
echo "Saved composer.json.74 and composer.lock.74"

echo "Done. composer.json/composer.lock.74 and .83 are in sync with their respective PHP versions."
