#!/bin/bash

# Chemin du répertoire à scanner (par défaut /usr/java, mais peut être modifié)
SEARCH_DIR="/usr/java"

# Fonction pour convertir une version Java en nombre comparable
version_to_number() {
    local version=$1
    # Extrait les chiffres de la version (ex: "17.0.13.11.1" -> "17000130111")
    echo "$version" | awk -F. '{ printf("%d%03d%03d%03d%03d\n", $1, $2, $3, $4, $5) }'
}

# Fonction pour extraire la version d'un nom de dossier Corretto
extract_version_from_dirname() {
    local dirname=$1
    echo "$dirname" | grep -o '[0-9]\+\.[0-9]\+\.[0-9]\+\.[0-9]\+\.[0-9]\+' || echo "0.0.0.0.0"
}

# Fonction pour obtenir la dernière version de Corretto disponible
get_latest_corretto_version() {
    # Récupère la dernière version depuis la page Amazon
    curl -s https://api.github.com/repos/corretto/corretto-25/releases/latest | grep '"tag_name":' | sed -E 's/.*"([^"]+)".*/\1/' 
}

# Trouver la version la plus élevée dans /usr/java
HIGHEST_LOCAL_VERSION="0"
if [ -d "$SEARCH_DIR" ]; then

    for dir in "$SEARCH_DIR"/amazon-corretto-*-linux-x64; do
        if [ -d "$dir" ]; then
            # Afficher le dossier trouvé
            echo "Trouvé: $(basename "$dir")"
            
            # Extraire la version du nom du dossier
            VERSION=$(extract_version_from_dirname "$(basename "$dir")")
            VERSION_NUM=$(version_to_number "$VERSION")
            
            echo "  Version extraite: $VERSION (Numéro: $VERSION_NUM)"
            
            # Comparer avec la version la plus élevée actuelle
            if [ "$VERSION_NUM" -gt "$HIGHEST_LOCAL_VERSION" ]; then
                HIGHEST_VERSION="$VERSION"
                HIGHEST_VERSION_PATH="$dir"
                HIGHEST_LOCAL_VERSION="$VERSION_NUM"
                echo "  → Nouvelle version la plus élevée"
            fi
        fi
    done
   
    echo "Version la plus élevée dans /usr/java : $HIGHEST_LOCAL_VERSION"
else
    echo "Le répertoire /usr/java n'existe pas"
fi

# Obtenir la dernière version de Corretto disponible
LATEST_CORRETTO_VERSION=$(get_latest_corretto_version)
echo "Dernière version de Corretto disponible : $LATEST_CORRETTO_VERSION"

# Convertir les versions en nombres pour comparaison
LATEST_NUM=$(version_to_number "$LATEST_CORRETTO_VERSION")
 echo "HIGHEST_LOCAL_VERSION $LATEST_NUM "
   echo "LATEST_NUM $HIGHEST_LOCAL_VERSION "

# Si la version système est plus récente que la version locale, télécharger Corretto
if [ "$LATEST_NUM" -gt "$HIGHEST_LOCAL_VERSION" ]; then
    echo "La version système ($LATEST_NUM) est plus récente que la version locale ($HIGHEST_LOCAL_VERSION)"
    echo "Téléchargement de la dernière version de Corretto..."
    
    # Créer le répertoire de destination s'il n'existe pas
    mkdir -p /usr/java
    
    # Télécharger Corretto
    DOWNLOAD_URL="https://corretto.aws/downloads/latest/amazon-corretto-25-x64-linux-jdk.tar.gz"
    wget -P /tmp "$DOWNLOAD_URL"
    
    # Extraire l'archive
    cd /tmp
    tar_file=$(ls amazon-corretto-*.tar.gz | head -1)
    tar xzf "$tar_file" -C /usr/java
    
    # Nettoyer
    rm "$tar_file"
    
    echo "Installation terminée dans /usr/java"
    
   
else
    echo "Aucune mise à jour nécessaire. La version locale ($HIGHEST_LOCAL_VERSION) est à jour."
fi


