#!/bin/bash
# convert_calendar_range.sh
# Converte coppie adiacenti:
#   hb_calendar(A, B).hb_calendar(C, D)
# in:
#   hb_calendar_range(A, B, C, D)
#
# Uso:
#   ./convert_calendar_range.sh file.php           # dry-run: stampa su stdout
#   ./convert_calendar_range.sh -i file.php        # modifica in-place
#   ./convert_calendar_range.sh -i *.php           # più file in-place

INPLACE=0
FILES=()

for arg in "$@"; do
    case $arg in
        -i) INPLACE=1 ;;
        *)  FILES+=("$arg") ;;
    esac
done

if [ ${#FILES[@]} -eq 0 ]; then
    echo "Uso: $0 [-i] <file.php> [file2.php ...]"
    echo "  -i  modifica in-place (senza -i stampa su stdout)"
    exit 1
fi

PATTERN='s/hb_calendar\(([^)]+)\)\s*\.\s*hb_calendar\(([^)]+)\)/hb_calendar_range(\1,\2)/g'

for FILE in "${FILES[@]}"; do
    if [ ! -f "$FILE" ]; then
        echo "File non trovato: $FILE" >&2
        continue
    fi

    # controlla se ci sono occorrenze da convertire
    MATCHES=$(grep -cP 'hb_calendar\([^)]+\)\s*\.\s*hb_calendar\(' "$FILE" 2>/dev/null || echo 0)

    if [ "$MATCHES" -eq 0 ]; then
        echo "Nessuna occorrenza in: $FILE"
        continue
    fi

    if [ $INPLACE -eq 1 ]; then
        sed -i -E "$PATTERN" "$FILE"
        echo "Convertite $MATCHES occorrenze in: $FILE"
    else
        echo "=== $FILE ($MATCHES occorrenze) ==="
        sed -E "$PATTERN" "$FILE"
    fi
done
