#!/bin/bash

# Lista plików do przeszukania
files=(
  "/usr/local/php72/lib/php.ini"
  "/usr/local/php73/lib/php.ini"
  "/usr/local/php74/lib/php.ini"
  "/usr/local/php80/lib/php.ini"
  "/usr/local/php81/lib/php.ini"
  "/usr/local/php82/lib/php.ini"
)

# Lista domyślnych zmiennych do zmiany
default_variables=(
  "opcache.jit_buffer_size=256M"
  "opcache.enable=1"
  "opcache.enable_cli=1"
  "memory_limit=512M"
  "max_input_vars=10000"
  "max_execution_time=90"
)

# Jeżeli plik /usr/local/directadmin/ht_php_settings istnieje,
# wczytaj zmienne z tego pliku
if [ -f "/usr/local/directadmin/ht_php_settings" ]; then
  variables=()
  while IFS= read -r line; do
    variables+=("$line")
  done < "/usr/local/directadmin/ht_php_settings"
else
  variables=("${default_variables[@]}")
fi

# Przeszukaj każdy plik
for file in "${files[@]}"; do
  if [ -f "$file" ]; then
    echo "Plik $file istnieje."
    changed=false  # Czy zmieniono jakąś wartość

    # Przeszukaj każdą zmienną
    for variable in "${variables[@]}"; do
      key="${variable%%=*}"  # Wyodrębnij klucz z pary klucz=wartość
      value="${variable#*=}" # Wyodrębnij wartość z pary klucz=wartość

      # Czy istnieje linia z kluczem?
      if grep -q "$key" "$file"; then
        echo "Znaleziono '$key' w $file. Zmieniam wartość..."

        # Usunięcie ewentualnego komentarza i zmiana wartości na nową wartość
        sed -i -r "s/^[;#]?($key).*/\1=$value/" "$file"

        echo "Wartość '$key' zmieniona na '$value' w $file."
        changed=true
      else
        echo "'$key' nie znaleziono w $file. Dodaję wartość..."

        # Dodajemy wartość na końcu pliku
        echo "$key=$value" >> "$file"

        echo "Dodano '$key' z wartością '$value' do $file."
        changed=true
      fi
    done

    # Restart usługi jeśli dokonano jakiejkolwiek zmiany
    if [ "$changed" = true ]; then
      version="${file:14:2}"  # Wyciągnięcie wersji z nazwy pliku
      echo "Restartowanie usługi php-fpm$version ze względu na zmiany..."
      systemctl restart "php-fpm$version"
    fi
  else
    echo "Plik $file nie istnieje."
  fi
done
