wenzelm@63995: #!/usr/bin/env bash wenzelm@63995: # wenzelm@63995: # Author: Makarius wenzelm@63995: # wenzelm@63995: # Isabelle/Java cold start -- without settings environment wenzelm@63995: wenzelm@63995: if [ -L "$0" ]; then wenzelm@63995: TARGET="$(LC_ALL=C ls -l "$0" | sed 's/.* -> //')" wenzelm@63995: exec "$(cd "$(dirname "$0")"; cd "$(pwd -P)"; cd "$(dirname "$TARGET")"; pwd)/$(basename "$TARGET")" "$@" wenzelm@63995: fi wenzelm@63995: wenzelm@63995: export ISABELLE_HOME="$(cd "$(dirname "$0")"; cd "$(pwd -P)"; cd ..; pwd)" wenzelm@63995: wenzelm@63995: ( wenzelm@63995: source "$ISABELLE_HOME/lib/scripts/getsettings" || exit 2 wenzelm@63995: wenzelm@66906: eval "declare -a JAVA_ARGS=($ISABELLE_JAVA_SYSTEM_OPTIONS $ISABELLE_TOOL_JAVA_OPTIONS)" wenzelm@63995: wenzelm@63995: if [ -f "$ISABELLE_HOME/src/Tools/jEdit/dist/jedit.jar" ]; then wenzelm@63995: classpath "$ISABELLE_HOME/src/Tools/jEdit/dist/jedit.jar" wenzelm@63995: fi wenzelm@63995: wenzelm@63995: [ -n "$CLASSPATH" ] && classpath "$CLASSPATH" wenzelm@63995: wenzelm@63995: echo "$ISABELLE_ROOT" wenzelm@63995: echo "$CYGWIN_ROOT" wenzelm@63995: echo "$JAVA_HOME" wenzelm@63995: echo "$(platform_path "$ISABELLE_CLASSPATH")" wenzelm@63995: for ARG in "${JAVA_ARGS[@]}"; do echo "$ARG"; done wenzelm@63995: ) | { wenzelm@63995: LINE_COUNT=0 wenzelm@63995: export ISABELLE_ROOT="" wenzelm@63995: export CYGWIN_ROOT="" wenzelm@63995: unset JAVA_HOME wenzelm@63995: unset ISABELLE_CLASSPATH wenzelm@63995: unset JAVA_ARGS; declare -a JAVA_ARGS wenzelm@63995: wenzelm@63995: while { unset REPLY; read -r; test "$?" = 0 -o -n "$REPLY"; } wenzelm@63995: do wenzelm@63995: case "$LINE_COUNT" in wenzelm@63995: 0) wenzelm@63995: LINE_COUNT=1 wenzelm@63995: ISABELLE_ROOT="$REPLY" wenzelm@63995: ;; wenzelm@63995: 1) wenzelm@63995: LINE_COUNT=2 wenzelm@63995: CYGWIN_ROOT="$REPLY" wenzelm@63995: ;; wenzelm@63995: 2) wenzelm@63995: LINE_COUNT=3 wenzelm@63995: JAVA_HOME="$REPLY" wenzelm@63995: ;; wenzelm@63995: 3) wenzelm@63995: LINE_COUNT=4 wenzelm@63995: ISABELLE_CLASSPATH="$REPLY" wenzelm@63995: ;; wenzelm@63995: *) wenzelm@63995: JAVA_ARGS["${#JAVA_ARGS[@]}"]="$REPLY" wenzelm@63995: ;; wenzelm@63995: esac wenzelm@63995: done wenzelm@63995: wenzelm@63995: if [ -z "$JAVA_HOME" ]; then wenzelm@63995: echo "Unknown JAVA_HOME -- Java unavailable" >&2 wenzelm@63995: exit 127 wenzelm@63995: else wenzelm@64022: unset ISABELLE_HOME wenzelm@63995: unset CLASSPATH wenzelm@67490: exec "$JAVA_HOME/bin/java" "${JAVA_ARGS[@]}" \ wenzelm@67490: "-Djava.ext.dirs=$JAVA_HOME/lib/ext" \ wenzelm@67490: -classpath "$ISABELLE_CLASSPATH" "$@" wenzelm@63995: fi wenzelm@63995: }