|
#!/bin/bash |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
set -e |
|
set -u |
|
|
|
USER_DIR=`pwd` |
|
|
|
cd $(dirname $0) |
|
DIR=`pwd` |
|
|
|
SCRIPT_NAME=`basename $0` |
|
SOURCE="${SCRIPT_NAME}" |
|
while [ -h "${SCRIPT_NAME}" ]; do |
|
SOURCE="$(readlink "${SCRIPT_NAME}")" |
|
DIR="$( cd -P "$( dirname "${SOURCE}" )" && pwd )" |
|
cd ${DIR} |
|
done |
|
BIN="$( cd -P "$( dirname "$SOURCE" )" && pwd )" |
|
|
|
cd -P $BIN/../conf |
|
CFG=$(pwd) |
|
|
|
cd -P $BIN/../lib |
|
LIB=$(pwd) |
|
|
|
cd -P $BIN/../ext |
|
EXT=$(pwd) |
|
|
|
CP="$CFG" |
|
|
|
CP="$CP":$(find -L $LIB -name 'slf4j-log4j12*.jar' | sort | tr '\n' ':') |
|
|
|
CP="$CP":$(find -L $LIB -name 'janusgraph*.jar' | sort | tr '\n' ':') |
|
|
|
CP="$CP":$(find -L $LIB -name '*.jar' \ |
|
\! -name 'janusgraph*' \ |
|
\! -name 'slf4j-log4j12*.jar' | sort | tr '\n' ':') |
|
|
|
CP="$CP":$(find -L $EXT -name '*.jar' | sort | tr '\n' ':') |
|
|
|
cd .. |
|
SYSTEM_EXT_DIR="`pwd`/ext" |
|
|
|
JAVA_OPTIONS=${JAVA_OPTIONS:-} |
|
|
|
if [ ! -z "${JAVA_OPTIONS}" ]; then |
|
USER_EXT_DIR=$(grep -o '\-Dtinkerpop.ext=\(\([^"][^ ]*\)\|\("[^"]*"\)\)' <<< "${JAVA_OPTIONS}" | cut -f2 -d '=' | xargs -0 echo) |
|
if [ ! -z "${USER_EXT_DIR}" -a ! -d "${USER_EXT_DIR}" ]; then |
|
mkdir -p "${USER_EXT_DIR}" |
|
cp -R ${SYSTEM_EXT_DIR}/* ${USER_EXT_DIR}/ |
|
fi |
|
fi |
|
|
|
case `uname` in |
|
CYGWIN*) |
|
CP="$(cygpath -p -w "$CP")" |
|
;; |
|
esac |
|
|
|
CP=$CP:$( find -L "${SYSTEM_EXT_DIR}" "${USER_EXT_DIR:-${SYSTEM_EXT_DIR}}" -mindepth 1 -maxdepth 1 -type d | \ |
|
sort -u | sed 's/$/\/plugin\/*/' | tr '\n' ':' ) |
|
|
|
export CLASSPATH="${CLASSPATH:-}:$CP" |
|
|
|
|
|
if [ -z "${JAVA_HOME:-}" ]; then |
|
JAVA="java -server" |
|
else |
|
JAVA="$JAVA_HOME/bin/java -server" |
|
fi |
|
|
|
|
|
|
|
|
|
if [ -z "${SCRIPT_DEBUG:-}" ]; then |
|
SCRIPT_DEBUG= |
|
fi |
|
|
|
|
|
MAIN_CLASS=org.apache.tinkerpop.gremlin.console.Console |
|
while getopts ":lv" opt; do |
|
case "$opt" in |
|
l) eval GREMLIN_LOG_LEVEL=\$$OPTIND |
|
OPTIND="$(( $OPTIND + 1 ))" |
|
if [ "$GREMLIN_LOG_LEVEL" = "TRACE" -o \ |
|
"$GREMLIN_LOG_LEVEL" = "DEBUG" ]; then |
|
SCRIPT_DEBUG=y |
|
fi |
|
;; |
|
v) MAIN_CLASS=org.janusgraph.core.JanusGraph |
|
esac |
|
done |
|
|
|
if [ -z "${HADOOP_GREMLIN_LIBS:-}" ]; then |
|
export HADOOP_GREMLIN_LIBS="$LIB" |
|
fi |
|
|
|
JAVA_OPTIONS="${JAVA_OPTIONS} -Duser.working_dir=${USER_DIR} -Dtinkerpop.ext=${USER_EXT_DIR:-${SYSTEM_EXT_DIR}} -Dlog4j2.configurationFile=file:conf/log4j2-console.xml -javaagent:$LIB/jamm-0.3.3.jar -Dgremlin.io.kryoShimService=org.janusgraph.hadoop.serialize.JanusGraphKryoShimService" |
|
JAVA_OPTIONS=$(awk -v RS=' ' '!/^$/ {if (!x[$0]++) print}' <<< "${JAVA_OPTIONS}" | grep -v '^$' | paste -sd ' ' -) |
|
|
|
if [ -n "$SCRIPT_DEBUG" ]; then |
|
|
|
JAVA_OPTIONS="${JAVA_OPTIONS} -Divy.message.logger.level=4 -Dgroovy.grape.report.downloads=true" |
|
echo "CLASSPATH: $CLASSPATH" |
|
set -x |
|
fi |
|
|
|
|
|
exec $JAVA $JAVA_OPTIONS $MAIN_CLASS "$@" |
|
|