llmengine/test/triples/neo4j/bin/cypher-shell
2025-07-18 18:29:10 +08:00

97 lines
2.2 KiB
Bash
Executable File

#!/bin/bash
set -euo pipefail
[[ "${TRACE:-}" ]] && set -x
check_java() {
_find_java_cmd
version_command=("${JAVA_CMD}" "-version")
[[ -n "${JAVA_MEMORY_OPTS:-}" ]] && version_command+=("${JAVA_MEMORY_OPTS[@]}")
JAVA_VERSION=$("${version_command[@]}" 2>&1 | awk -F '"' '/version/ {print $2}')
if [[ $JAVA_VERSION = "1."* ]]; then
if [[ "${JAVA_VERSION}" < "1.8" ]]; then
echo "ERROR! Java version ${JAVA_VERSION} is not supported. "
_show_java_help
exit 1
fi
fi
}
_find_java_cmd() {
[[ "${JAVA_CMD:-}" ]] && return
detect_os
_find_java_home
if [[ "${JAVA_HOME:-}" ]] ; then
JAVA_CMD="${JAVA_HOME}/bin/java"
if [[ ! -f "${JAVA_CMD}" ]]; then
echo "ERROR: JAVA_HOME is incorrectly defined as ${JAVA_HOME} (the executable ${JAVA_CMD} does not exist)"
exit 1
fi
else
if [ "${DIST_OS}" != "macosx" ] ; then
# Don't use default java on Darwin because it displays a misleading dialog box
JAVA_CMD="$(which java || true)"
fi
fi
if [[ ! "${JAVA_CMD:-}" ]]; then
echo "ERROR: Unable to find Java executable."
_show_java_help
exit 1
fi
}
detect_os() {
if uname -s | grep -q Darwin; then
DIST_OS="macosx"
elif [[ -e /etc/gentoo-release ]]; then
DIST_OS="gentoo"
else
DIST_OS="other"
fi
}
_find_java_home() {
[[ "${JAVA_HOME:-}" ]] && return
case "${DIST_OS}" in
"macosx")
JAVA_HOME="$(/usr/libexec/java_home -v 1.8+)"
;;
"gentoo")
JAVA_HOME="$(java-config --jre-home)"
;;
esac
}
_show_java_help() {
echo "* Please use Oracle(R) Java(TM) >=8 or OpenJDK(TM) >=8."
}
build_classpath() {
APP_HOME="$(cd "$(dirname "$0")" && pwd)"
# First try in sub directory
JARPATH="$(find "${APP_HOME}" -name "cypher-shell.jar" )"
# Then try installation directory (prefix/bin and prefix/share/cypher-shell/lib)
if [[ -z "${JARPATH}" ]]; then
APP_HOME="${APP_HOME}/../share/cypher-shell"
JARPATH="$(find "${APP_HOME}" -name "cypher-shell.jar" )"
fi
}
check_java
build_classpath
if [ -z "${JARPATH}" ]; then
echo "Unable to locate cypher-shell library files" >&2
exit 1
fi
exec "$JAVA_CMD" ${JAVA_OPTS:-} \
-jar "$JARPATH" \
"$@"