#!/usr/bin/env bash
# replacetag.sh
# Usage: replacetag.sh <original-file> [template-file]
# original-file wird überschrieben .

set -euo pipefail

if [ "${1-}" = "" ]; then
  echo "Nutzung: $0 <original-file> [template-file]" >&2
  exit 2
fi

OLD="$1"
SRC="${2:-docker-compose-school.yml}"
OUT="$OLD"

if [ ! -f "$OLD" ]; then
  echo "Fehler: Original-Datei '$OLD' nicht gefunden." >&2
  exit 1
fi
if [ ! -f "$SRC" ]; then
  echo "Fehler: Template-Datei '$SRC' nicht gefunden." >&2
  exit 1
fi

# Suche nach dem letzten Tag eines lettohub-Services
lettotag="stable-1.3"
if grep -oP 'image: lettohub/[A-Za-z0-9_.-]+:\K[A-Za-z0-9_][A-Za-z0-9_.-]*' "$OLD" >/dev/null 2>&1; then
  lettotag=$(grep -Po 'image: lettohub/[A-Za-z0-9_.-]+:\K[A-Za-z0-9_][A-Za-z0-9_.-]*' "$OLD" | head -n1)
fi

# Suche nach dem Tag des Login-Services
logintag="stable-1.3"
if grep -oP '(?<=image: lettohub/letto-service-login:)[A-Za-z0-9_][A-Za-z0-9_.-]*' "$OLD" >/dev/null 2>&1; then
  logintag=$(grep -Po '(?<=image: lettohub/letto-service-login:)[A-Za-z0-9_][A-Za-z0-9_.-]*' "$OLD" | head -n1)
fi

# Suche nach dem Tag des Proxy
proxytag="stable-1.3"
if grep -oP '(?<=image: lettohub/letto-proxy:)[A-Za-z0-9_][A-Za-z0-9_.-]*' "$OLD" >/dev/null 2>&1; then
  proxytag=$(grep -Po '(?<=image: lettohub/letto-proxy:)[A-Za-z0-9_][A-Za-z0-9_.-]*' "$OLD" | head -n1)
fi

# Suche nach dem Tag des Lehrplan-Services
lehrplantag="stable-1.3"
if grep -oP '(?<=image: lettohub/letto-service-lehrplan:)[A-Za-z0-9_][A-Za-z0-9_.-]*' "$OLD" >/dev/null 2>&1; then
  lehrplantag=$(grep -Po '(?<=image: lettohub/letto-service-lehrplan:)[A-Za-z0-9_][A-Za-z0-9_.-]*' "$OLD" | head -n1)
fi

# Suche nach dem Tag des Lehrplan-Edit-Services
lpedittag="stable-1.3"
if grep -oP '(?<=image: lettohub/letto-service-lehrplan-edit:)[A-Za-z0-9_][A-Za-z0-9_.-]*' "$OLD" >/dev/null 2>&1; then
  lpedittag=$(grep -Po '(?<=image: lettohub/letto-service-lehrplan-edit:)[A-Za-z0-9_][A-Za-z0-9_.-]*' "$OLD" | head -n1)
fi

echo "lettotag=${lettotag} logintag=${logintag}"

sed -E '
  s#(image:[[:space:]]*"?lettohub/[A-Za-z0-9._-]+:)[A-Za-z0-9_][A-Za-z0-9_.-]*#\1'"${lettotag}"'#g;
  s#(image:[[:space:]]*"?lettohub/letto-proxy:)[A-Za-z0-9_][A-Za-z0-9_.-]*#\1'"${proxytag}"'#g;
  s#(image:[[:space:]]*"?lettohub/letto-service-login:)[A-Za-z0-9_][A-Za-z0-9_.-]*#\1'"${logintag}"'#g;
  s#(image:[[:space:]]*"?lettohub/letto-service-lehrplan:)[A-Za-z0-9_][A-Za-z0-9_.-]*#\1'"${lehrplantag}"'#g;
  s#(image:[[:space:]]*"?lettohub/letto-service-lehrplan-edit:)[A-Za-z0-9_][A-Za-z0-9_.-]*#\1'"${lpedittag}"'#g;
' "$SRC" > "$OUT"

# s/^([[:space:]]*)#(\s*-\s*\"?[0-9]+:[0-9]+\"?)/\1\2/g

echo "OK: $OUT erstellt"
exit 0
