blob: 3d82be6682053bb95ad90533360e6b4acfc67c42 [file] [log] [blame]
#!/bin/sh
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# Run fuseki as a standalone server
# Determine where this script resides. Start by assuming it was the path invoked.
THIS_SCRIPT="$0"
# Handle resolving symlinks to this script on BSD or GNU systems by avoiding readlink.
while [ -h "$THIS_SCRIPT" ] ; do
ls=`ls -ld "$THIS_SCRIPT"`
# Drop everything prior to ->
link=`expr "$ls" : '.*-> \(.*\)$'`
if expr "$link" : '/.*' > /dev/null; then
THIS_SCRIPT="$link"
else
THIS_SCRIPT=`dirname "$THIS_SCRIPT"`/"$link"
fi
done
# Get path to the scripts directory.
SCRIPT_DIR=$(dirname "${THIS_SCRIPT}")
# Unless FUSEKI_HOME is set, assume it is the dir the script is in.
export FUSEKI_HOME="${FUSEKI_HOME:-$SCRIPT_DIR}"
if [ ! -e "$FUSEKI_HOME" ]
then
echo "$FUSEKI_HOME does not exist" 1>&2
exit 1
fi
JAR1="$FUSEKI_HOME/fuseki-server.jar"
JAR2="$FUSEKI_HOME/jena-fuseki-server-*.jar"
JAR=""
for J in "$JAR1" "$JAR2"
do
# Expand
J="$(echo $J)"
if [ -e "$J" ]
then
JAR="$J"
break
fi
done
if [ "$JAR" = "" ]
then
echo "Can't find jarfile to run"
exit 1
fi
# Deal with Cygwin path issues
cygwin=false
case "`uname`" in
CYGWIN*) cygwin=true;;
esac
if [ "$cygwin" = "true" ]
then
JAR=`cygpath -w "$JAR"`
FUSEKI_HOME=`cygpath -w "$FUSEKI_HOME"`
fi
export FUSEKI_BASE="${FUSEKI_BASE:-$PWD/run}"
if [ -z "$JAVA" ]
then
if [ -z "$JAVA_HOME" ]
then
JAVA=$(which java)
else
JAVA=$JAVA_HOME/bin/java
fi
fi
if [ -z "$JAVA" ]
then
(
echo "Cannot find a Java JDK."
echo "Please set either set JAVA or JAVA_HOME and put java (>=1.8) in your PATH."
) 1>&2
exit 1
fi
CP=$JAR
if [ -d $FUSEKI_BASE/extra ]
then
CP="${CP}:${FUSEKI_BASE}/extra/*"
fi
JVM_ARGS=${JVM_ARGS:--Xmx4G}
exec $JAVA $JVM_ARGS -cp "$CP" org.apache.jena.fuseki.cmd.FusekiCmd "$@"
## Adding custom code to the Fuseki server:
##
## The recommended way to add custom jars to the Fuseki server is to create an
## "extra" directory under FUSEKI_BASE and place any jars in there.
##
## It is also possible to add more jars to the CP environment variable before
## the exec call:
##
## CP="${CP}:MyCode.jar
##
## "exec" is optional - it simply frees up an OS process.
## In this way, you can add custom java to the classpath:
##