#!/bin/bash

# Directorio a recorrer
DIRECTORIO_BASE="/var/www/html"

# Directorios a omitir (separados por espacios)
OMITIR=("wordpress-manager" "Plenum" "Transpial")

# Directorio específico para la prueba
DIRECTORIO_PRUEBA=""

# Función para verificar y agregar FS_METHOD en wp-config.php
agregar_fs_method() {
    local archivo="$1"
    if [[ -f "$archivo" ]]; then
        echo "Verificando FS_METHOD en $archivo"

        # Eliminar cualquier definición existente de FS_METHOD
        sudo sed -i '/define( *'\''FS_METHOD'\''/d' "$archivo"

        # Agregar FS_METHOD dos líneas debajo de cualquier definición de DB_COLLATE
        sudo sed -i "/DB_COLLATE/a\\
        \n/** Habilita descarga directa de plugin */\n\
define( 'FS_METHOD', 'direct' );" "$archivo"
    else
        echo "El archivo $archivo no existe. Omitiendo."
    fi
}

# Función para procesar un directorio específico
procesar_directorio() {
    local dir="$1"
    if [[ -d "$dir" ]]; then
        # Obtener el nombre del directorio
        local nombre=$(basename "$dir")
        
        # Verificar si el nombre está en la lista de omitidos
        if [[ " ${OMITIR[@]} " =~ " $nombre " ]]; then
            echo "Omitiendo directorio: $nombre"
        else
            # Verificar y agregar FS_METHOD en wp-config.php
            local wp_config_file="$dir/wp-config.php"
            echo "Procesando archivo: $wp_config_file"
            agregar_fs_method "$wp_config_file"
        fi
    else
        echo "El directorio $dir no existe."
    fi
}

# Procesar directorio específico si se proporciona, de lo contrario, recorrer todos los directorios
if [[ -n "$DIRECTORIO_PRUEBA" ]]; then
    procesar_directorio "$DIRECTORIO_BASE/$DIRECTORIO_PRUEBA"
else
    for dir in "$DIRECTORIO_BASE"/*; do
        procesar_directorio "$dir"
    done
fi

echo "Proceso completado."