JVM_DIR=/usr/lib/jvm
OLD_DEFAULT_NAME=java-default-runtime
OLD_DEFAULT_PATH=${JVM_DIR}/${OLD_DEFAULT_NAME}
DEFAULT_NAME=default
DEFAULT_PATH=${JVM_DIR}/${DEFAULT_NAME}
DEFAULT_NAME_JRE=default-runtime
DEFAULT_PATH_JRE=${JVM_DIR}/${DEFAULT_NAME_JRE}

# $1: Java environment name to set as default
set_default_link_to() {
  new_default=$1
  unlink ${DEFAULT_PATH} 2>/dev/null
  ln -sf ${new_default} ${DEFAULT_PATH}

  unlink ${DEFAULT_PATH_JRE} 2>/dev/null
  if [[ ${new_default} == */jre ]]; then
    ln -sf ${new_default} ${DEFAULT_PATH_JRE}
  else
    ln -sf ${new_default}/jre ${DEFAULT_PATH_JRE}
  fi
}

pre_install() {
  _curr_def=$(readlink ${OLD_DEFAULT_PATH} && true)
  if [ -n "${_curr_def}" ]; then
    unlink ${OLD_DEFAULT_PATH} > /dev/null 2>&1
    ln -sf ${DEFAULT_NAME} ${OLD_DEFAULT_PATH}

    set_default_link_to ${_curr_def}
  fi
}

pre_upgrade() {
  pre_install "$@"
}

post_install() {
  echo 'Installing multiple non-conflicting Java environments is now supported'
  echo 'Check the following wiki section for more info:'
  echo '  https://wiki.parabolagnulinux.org/index.php/Java'
  echo 'Please make sure JAVA_HOME is set to /usr/lib/jvm/default'
  echo 'If not, you may have to logout and login again to set it according to /etc/profile.d/jre.sh'
}

post_upgrade() {
  post_install "$@"
}