#!/bin/bash

if [ "${DIB_DEBUG_TRACE:-0}" -gt 0 ]; then
    set -x
fi
set -eu
set -o pipefail

echo "Installing OpenJDK"

default_jdk_version_for_distro () {
    case "$DISTRO_NAME" in
        fedora )
            if [ $(lsb_release -rs) -ge '21' ]; then
                echo "8"
            else
                echo "7"
            fi
        ;;
        centos7 | rhel7 )
            echo "8"
        ;;
        ubuntu )
            if [ "$DIB_RELEASE" = "trusty" ]; then
                echo "7"
            elif [ "$DIB_RELEASE" = "xenial" ]; then
                echo "8"
            fi
        ;;
        *)
            echo "Unknown OpenJDK distro: $DISTRO_NAME" >&2
            exit 1
        ;;
    esac
}

pkg=openjdk-$(default_jdk_version_for_distro)
pkg=$(pkg-map --element openjdk $pkg)
install-packages $pkg

case "$DISTRO_NAME" in
    ubuntu )
        JRE_PATH=$(update-alternatives --list java)
        JRE_HOME=${JRE_PATH%/bin/java}
        JDK_PATH=$(update-alternatives --list javac)
        JDK_HOME=${JDK_PATH%/bin/javac}
    ;;
    fedora | rhel7 | centos7 )
        # NOTE: rpm -E "%{java_home}" command returns wrong java home
        # on CentOS, Fedora and RHEL
        JRE_HOME="/usr/lib/jvm/java-openjdk/jre"
        JDK_HOME="/usr/lib/jvm/java-openjdk"
    ;;
esac

setup-java-home $JRE_HOME $JDK_HOME

echo "OpenJDK has been installed"
