#!/usr/bin/env bash
#
# Author: Makarius
#
# Main Isabelle application script.

# minimal Isabelle environment

ISABELLE_HOME="$(cd "$(dirname "$0")"; cd "$(pwd -P)/../.."; pwd)"
source "$ISABELLE_HOME/lib/scripts/isabelle-platform"

#paranoia settings -- avoid intrusion of alien options
unset "_JAVA_OPTIONS"
unset "JAVA_TOOL_OPTIONS"

#paranoia settings -- avoid problems of Java/Swing versus XIM/IBus etc.
unset XMODIFIERS

COMPONENT="$ISABELLE_HOME/contrib/jdk-21.0.9"
source "$COMPONENT/etc/settings"


# main

declare -a JAVA_OPTIONS=($(grep -v '^#' "$ISABELLE_HOME/Isabelle.options"))

eval $("$ISABELLE_JDK_HOME/bin/java" "${JAVA_OPTIONS[@]}" -classpath "$ISABELLE_HOME/contrib/flatlaf-3.6.2/lib/flatlaf-3.6.2-no-natives.jar:$ISABELLE_HOME/contrib/flatlaf-3.6.2/lib/flatlaf-extras-3.6.2.jar:$ISABELLE_HOME/contrib/isabelle_setup-20250613/lib/isabelle_setup.jar:$ISABELLE_HOME/contrib/javamail-20251022/lib/jakarta.mail-api-2.1.5.jar:$ISABELLE_HOME/contrib/javamail-20251022/lib/jakarta.activation-api-2.1.4.jar:$ISABELLE_HOME/contrib/javamail-20251022/lib/angus-mail-2.0.5.jar:$ISABELLE_HOME/contrib/javamail-20251022/lib/angus-activation-2.0.3.jar:$ISABELLE_HOME/contrib/jedit-20251128/jedit5.7.0-patched/jedit.jar:$ISABELLE_HOME/contrib/jfreechart-1.5.3/lib/iText-2.1.5.jar:$ISABELLE_HOME/contrib/jfreechart-1.5.3/lib/jfreechart-1.5.3.jar:$ISABELLE_HOME/contrib/jortho-1.0-2/jortho.jar:$ISABELLE_HOME/contrib/jsoup-1.21.2/lib/jsoup-1.21.2.jar:$ISABELLE_HOME/contrib/jsvg-2.0.0/lib/jsvg-2.0.0.jar:$ISABELLE_HOME/contrib/kodkodi-1.5.7/jar/antlr-runtime-3.1.1.jar:$ISABELLE_HOME/contrib/kodkodi-1.5.7/jar/kodkod-1.5.jar:$ISABELLE_HOME/contrib/kodkodi-1.5.7/jar/kodkodi-1.5.7.jar:$ISABELLE_HOME/contrib/kodkodi-1.5.7/jar/sat4j-2.3.jar:$ISABELLE_HOME/contrib/postgresql-42.7.8/lib/postgresql-42.7.8.jar:$ISABELLE_HOME/contrib/scala-3.3.4/lib/scala-library-2.13.14.jar:$ISABELLE_HOME/contrib/scala-3.3.4/lib/scala3-library_3-3.3.4.jar:$ISABELLE_HOME/contrib/scala-3.3.4/lib/scala-asm-9.6.0-scala-1.jar:$ISABELLE_HOME/contrib/scala-3.3.4/lib/compiler-interface-1.9.6.jar:$ISABELLE_HOME/contrib/scala-3.3.4/lib/scala3-interfaces-3.3.4.jar:$ISABELLE_HOME/contrib/scala-3.3.4/lib/scala3-compiler_3-3.3.4.jar:$ISABELLE_HOME/contrib/scala-3.3.4/lib/tasty-core_3-3.3.4.jar:$ISABELLE_HOME/contrib/scala-3.3.4/lib/scala3-staging_3-3.3.4.jar:$ISABELLE_HOME/contrib/scala-3.3.4/lib/scala3-tasty-inspector_3-3.3.4.jar:$ISABELLE_HOME/contrib/scala-3.3.4/lib/jline-reader-3.25.1.jar:$ISABELLE_HOME/contrib/scala-3.3.4/lib/jline-terminal-3.25.1.jar:$ISABELLE_HOME/contrib/scala-3.3.4/lib/jline-terminal-jna-3.25.1.jar:$ISABELLE_HOME/contrib/scala-3.3.4/lib/jna-5.14.0.jar:$ISABELLE_HOME/contrib/scala-3.3.4/lib/scala-parallel-collections_3-1.0.4.jar:$ISABELLE_HOME/contrib/scala-3.3.4/lib/scala-parser-combinators_3-2.4.0.jar:$ISABELLE_HOME/contrib/scala-3.3.4/lib/scala-swing_3-3.0.0.jar:$ISABELLE_HOME/contrib/scala-3.3.4/lib/scala-xml_3-2.3.0.jar:$ISABELLE_HOME/contrib/solr-9.9.0/lib/solr-solrj-9.9.0.jar:$ISABELLE_HOME/contrib/solr-9.9.0/lib/solr-api-9.9.0.jar:$ISABELLE_HOME/contrib/solr-9.9.0/lib/solr-core-9.9.0.jar:$ISABELLE_HOME/contrib/sqlite-3.51.0.0/lib/sqlite-jdbc-3.51.0.0.jar:$ISABELLE_HOME/contrib/sqlite-3.51.0.0/lib/slf4j-api-2.0.17.jar:$ISABELLE_HOME/contrib/sqlite-3.51.0.0/lib/slf4j-nop-2.0.17.jar:$ISABELLE_HOME/contrib/xz-java-1.10/lib/xz-1.10.jar:$ISABELLE_HOME/contrib/zstd-jni-1.5.7-6/lib/zstd-jni-1.5.7-6.jar:$ISABELLE_HOME/contrib/naproche-20251110/Isabelle/naproche.jar:$ISABELLE_HOME/lib/classes/isabelle.jar:$ISABELLE_HOME/src/Tools/Demo/lib/demo.jar:$ISABELLE_HOME/lib/classes/isabelle_graphbrowser.jar" isabelle.setup.Setup gui_setup)

exec "$ISABELLE_JDK_HOME/bin/java" \
  "-Disabelle.root=$ISABELLE_HOME" "${JAVA_OPTIONS[@]}" \
  -classpath "$ISABELLE_HOME/contrib/flatlaf-3.6.2/lib/flatlaf-3.6.2-no-natives.jar:$ISABELLE_HOME/contrib/flatlaf-3.6.2/lib/flatlaf-extras-3.6.2.jar:$ISABELLE_HOME/contrib/isabelle_setup-20250613/lib/isabelle_setup.jar:$ISABELLE_HOME/contrib/javamail-20251022/lib/jakarta.mail-api-2.1.5.jar:$ISABELLE_HOME/contrib/javamail-20251022/lib/jakarta.activation-api-2.1.4.jar:$ISABELLE_HOME/contrib/javamail-20251022/lib/angus-mail-2.0.5.jar:$ISABELLE_HOME/contrib/javamail-20251022/lib/angus-activation-2.0.3.jar:$ISABELLE_HOME/contrib/jedit-20251128/jedit5.7.0-patched/jedit.jar:$ISABELLE_HOME/contrib/jfreechart-1.5.3/lib/iText-2.1.5.jar:$ISABELLE_HOME/contrib/jfreechart-1.5.3/lib/jfreechart-1.5.3.jar:$ISABELLE_HOME/contrib/jortho-1.0-2/jortho.jar:$ISABELLE_HOME/contrib/jsoup-1.21.2/lib/jsoup-1.21.2.jar:$ISABELLE_HOME/contrib/jsvg-2.0.0/lib/jsvg-2.0.0.jar:$ISABELLE_HOME/contrib/kodkodi-1.5.7/jar/antlr-runtime-3.1.1.jar:$ISABELLE_HOME/contrib/kodkodi-1.5.7/jar/kodkod-1.5.jar:$ISABELLE_HOME/contrib/kodkodi-1.5.7/jar/kodkodi-1.5.7.jar:$ISABELLE_HOME/contrib/kodkodi-1.5.7/jar/sat4j-2.3.jar:$ISABELLE_HOME/contrib/postgresql-42.7.8/lib/postgresql-42.7.8.jar:$ISABELLE_HOME/contrib/scala-3.3.4/lib/scala-library-2.13.14.jar:$ISABELLE_HOME/contrib/scala-3.3.4/lib/scala3-library_3-3.3.4.jar:$ISABELLE_HOME/contrib/scala-3.3.4/lib/scala-asm-9.6.0-scala-1.jar:$ISABELLE_HOME/contrib/scala-3.3.4/lib/compiler-interface-1.9.6.jar:$ISABELLE_HOME/contrib/scala-3.3.4/lib/scala3-interfaces-3.3.4.jar:$ISABELLE_HOME/contrib/scala-3.3.4/lib/scala3-compiler_3-3.3.4.jar:$ISABELLE_HOME/contrib/scala-3.3.4/lib/tasty-core_3-3.3.4.jar:$ISABELLE_HOME/contrib/scala-3.3.4/lib/scala3-staging_3-3.3.4.jar:$ISABELLE_HOME/contrib/scala-3.3.4/lib/scala3-tasty-inspector_3-3.3.4.jar:$ISABELLE_HOME/contrib/scala-3.3.4/lib/jline-reader-3.25.1.jar:$ISABELLE_HOME/contrib/scala-3.3.4/lib/jline-terminal-3.25.1.jar:$ISABELLE_HOME/contrib/scala-3.3.4/lib/jline-terminal-jna-3.25.1.jar:$ISABELLE_HOME/contrib/scala-3.3.4/lib/jna-5.14.0.jar:$ISABELLE_HOME/contrib/scala-3.3.4/lib/scala-parallel-collections_3-1.0.4.jar:$ISABELLE_HOME/contrib/scala-3.3.4/lib/scala-parser-combinators_3-2.4.0.jar:$ISABELLE_HOME/contrib/scala-3.3.4/lib/scala-swing_3-3.0.0.jar:$ISABELLE_HOME/contrib/scala-3.3.4/lib/scala-xml_3-2.3.0.jar:$ISABELLE_HOME/contrib/solr-9.9.0/lib/solr-solrj-9.9.0.jar:$ISABELLE_HOME/contrib/solr-9.9.0/lib/solr-api-9.9.0.jar:$ISABELLE_HOME/contrib/solr-9.9.0/lib/solr-core-9.9.0.jar:$ISABELLE_HOME/contrib/sqlite-3.51.0.0/lib/sqlite-jdbc-3.51.0.0.jar:$ISABELLE_HOME/contrib/sqlite-3.51.0.0/lib/slf4j-api-2.0.17.jar:$ISABELLE_HOME/contrib/sqlite-3.51.0.0/lib/slf4j-nop-2.0.17.jar:$ISABELLE_HOME/contrib/xz-java-1.10/lib/xz-1.10.jar:$ISABELLE_HOME/contrib/zstd-jni-1.5.7-6/lib/zstd-jni-1.5.7-6.jar:$ISABELLE_HOME/contrib/naproche-20251110/Isabelle/naproche.jar:$ISABELLE_HOME/lib/classes/isabelle.jar:$ISABELLE_HOME/src/Tools/Demo/lib/demo.jar:$ISABELLE_HOME/lib/classes/isabelle_graphbrowser.jar" \
  "-splash:$ISABELLE_HOME/lib/logo/isabelle.gif" \
  isabelle.jedit.JEdit_Main "$@"
