|
#!/usr/bin/env bash |
|
|
|
VER='' |
|
if [[ "$1" = "-ver" || "$1" == "--ver" ]] |
|
then |
|
if [[ $# -lt 2 ]] |
|
then |
|
echo $USAGE 1>&2 |
|
exit 1 |
|
fi |
|
VER="$2" |
|
shift |
|
shift |
|
fi |
|
|
|
ARGS="$@" |
|
export JH="${JH:-$HOME/ASF/afs-jena}" |
|
|
|
function release_fuseki() { |
|
local VER="$1" |
|
export FUSEKI_HOME=~/jlib/apache-jena-fuseki-$VER |
|
if [[ ! -e $FUSEKI_HOME || ! -d $FUSEKI_HOME ]] |
|
then |
|
echo "No such directory: $FUSEKI_HOME" 1>&2 |
|
exit 1 |
|
fi |
|
export FUSEKI_BASE=$PWD/run |
|
exec $FUSEKI_HOME/fuseki-server $ARGS |
|
} |
|
|
|
if [[ $VER != '' ]] |
|
then |
|
release_fuseki "$VER" |
|
exit |
|
fi |
|
|
|
export FUSEKI_HOME="$JH/jena-fuseki2/jena-fuseki-webapp" |
|
export FUSEKI_BASE=$PWD/run |
|
if [[ ! -e $FUSEKI_BASE ]] |
|
then |
|
mkdir "$FUSEKI_BASE" |
|
fi |
|
|
|
|
|
## fuseki-dev script |
|
function check_dir() { |
|
local NAME="$1" |
|
local DIR="$2" |
|
if [ ! -e "$DIR" ] |
|
then |
|
echo "$NAME: '$DIR' does not exist" 1>&2 |
|
exit 1 |
|
fi |
|
if [ ! -d "$DIR" ] |
|
then |
|
echo "$NAME: '$DIR' exists but is not a directory" 1>&2 |
|
exit 1 |
|
fi |
|
} |
|
|
|
export FUSEKI_HOME="${FUSEKI_HOME:-$PWD}" |
|
check_dir "FUSEKI_HOME" "$FUSEKI_HOME" |
|
|
|
export FUSEKI_BASE="${FUSEKI_BASE:-$FUSEKI_HOME/run}" |
|
check_dir "FUSEKI_BASE" "$FUSEKI_BASE" |
|
|
|
#CPF="$FUSEKI_HOME/fuseki.classpath" |
|
CPF="$HOME/sys/classpaths/fuseki-full" |
|
if [ ! -e "$CPF" ]; then |
|
echo "Need to create Fuseki classpath file" |
|
echo "Ensure maven is upto date with the latest snapshots and then run" |
|
echo "( cd $FUSEKI_HOME " |
|
echo " mvn dependency:build-classpath \\" |
|
echo " -DincludeScope=runtime -Dmdep.outputFile=$CPF )" |
|
exit 1 |
|
fi |
|
CP="$(cat $CPF)" |
|
|
|
# Add development directories. |
|
if [ -e "$FUSEKI_HOME/classes" ] |
|
then |
|
CP="$FUSEKI_HOME/classes:$CP" |
|
elif [ -e "$FUSEKI_HOME/target/classes" ] |
|
then |
|
CP="$FUSEKI_HOME/target/classes:$CP" |
|
fi |
|
|
|
# Prepend any development directories here |
|
DEVDIRS="jena-core jena-tdb jena-arq jena-text jena-base jena-fuseki2/jena-fuseki-core jena-fuseki2/jena-fuseki-webapp" |
|
for X in $DEVDIRS |
|
do |
|
CPX="$FUSEKI_HOME/../../$X/target/classes" |
|
if [ -e "$CPX" ] |
|
then |
|
CP="$CPX:$CP" |
|
fi |
|
done |
|
|
|
## echo "$CP" |
|
## exit |
|
|
|
FUSEKI_LOG="" #${FUSEKI_LOG:-} |
|
|
|
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 |
|
|
|
JVM_ARGS=${JVM_ARGS:--Xmx1200M} |
|
|
|
# Debug assistence |
|
## echo "++++ Classpath:" |
|
## echo "$(echo $CP | sed -e "s/:/\n/g")" |
|
## exit |
|
echo "Jena code: $JH" |
|
if [[ $ARGS = "-path" || $ARGS = "--path" ]] |
|
then |
|
echo "$CP" \ |
|
| sed -e 's/:/\n/g' \ |
|
| sed -e 's!^/home/afs/.m2/repo!Repo!g' \ |
|
| grep -v '^Repo' |
|
exit |
|
fi |
|
|
|
exec "$JAVA" -cp "$CP" $JVM_ARGS $FUSEKI_LOG org.apache.jena.fuseki.cmd.FusekiCmd "$@" |
|
|
|
# Run as war file. |
|
# java -jar jetty-runner.jar fuseki-server.war |