#!/bin/sh
# Launcher for GPG Password Tool.
# Tries common Java locations in order, then falls back to PATH.

JAR="/usr/share/gpg-password-tool/gpg-tool.jar"

find_java() {
    # 1) Try explicit JAVA_HOME if set.
    if [ -n "$JAVA_HOME" ] && [ -x "$JAVA_HOME/bin/java" ]; then
        echo "$JAVA_HOME/bin/java"
        return
    fi
    # 2) Try Ubuntu's default Java pointer.
    if [ -x /usr/bin/java ]; then
        echo /usr/bin/java
        return
    fi
    # 3) Try common JDK install paths.
    for d in /usr/lib/jvm/default-java \
             /usr/lib/jvm/java-17-openjdk* \
             /usr/lib/jvm/java-11-openjdk* \
             /usr/lib/jvm/java-8-openjdk*; do
        if [ -x "$d/bin/java" ]; then
            echo "$d/bin/java"
            return
        fi
    done
    # 4) Fall back to PATH.
    command -v java
}

JAVA=$(find_java)

if [ -z "$JAVA" ] || [ ! -x "$JAVA" ]; then
    # No Java found. Show a friendly graphical error if zenity is around,
    # otherwise stderr.
    MSG="GPG Password Tool needs Java but couldn't find it.\n\nInstall it with:\n    sudo apt install default-jre"
    if command -v zenity >/dev/null 2>&1; then
        zenity --error --title="GPG Password Tool" --text="$MSG" --width=400
    elif command -v notify-send >/dev/null 2>&1; then
        notify-send "GPG Password Tool" "Java not found. Run: sudo apt install default-jre"
    else
        printf "%b\n" "$MSG" >&2
    fi
    exit 1
fi

exec "$JAVA" \
    -XX:+UseSerialGC \
    -XX:MaxHeapFreeRatio=20 \
    -XX:MinHeapFreeRatio=10 \
    -XX:GCTimeRatio=4 \
    -XX:AdaptiveSizePolicyWeight=90 \
    -Xms32m \
    -Xmx256m \
    -jar "$JAR" "$@"
