1
0
Fork 0
arangodb/scripts/run

75 lines
1.9 KiB
Bash
Executable File

#!/bin/bash
export PID=$$
self=$0
if test -f "${self}.js"; then
export SCRIPT=${self}.js
else
export SCRIPT=$1
shift
fi
if test -n "$ORIGINAL_PATH"; then
# running in cygwin...
PS='\'
export EXT=".exe"
else
export EXT=""
PS='/'
fi;
LOGFILE="out${PS}log-$PID"
DBDIR="out${PS}data-$PID"
mkdir -p ${DBDIR}
export PORT=`expr 1024 + $RANDOM`
declare -a ARGS
export VG=''
export VXML=''
for i in "$@"; do
# no valgrind on cygwin, don't care.
if test "$i" == valgrind; then
export VG='/usr/bin/valgrind --log-file=/tmp/valgrindlog.%p'
elif test "$i" == valgrindxml; then
export VG='/usr/bin/valgrind --xml=yes --xml-file=valgrind_testrunner'
export VXML="valgrind=\"${VG}\""
export VG=${VG}'.xml '
else
ARGS+=(--javascript.script-parameter)
ARGS+=("$i")
fi
done
echo Database has its data in ${DBDIR}
echo Logfile is in ${LOGFILE}
$VG bin/arangod \
--configuration none \
--cluster.agent-path bin${PS}etcd-arango${EXT} \
--cluster.arangod-path bin${PS}arangod \
--cluster.coordinator-config etc${PS}relative${PS}arangod-coordinator.conf \
--cluster.dbserver-config etc${PS}relative${PS}arangod-dbserver.conf \
--cluster.disable-dispatcher-frontend false \
--cluster.disable-dispatcher-kickstarter false \
--cluster.data-path cluster \
--cluster.log-path cluster \
--database.directory ${DBDIR} \
--log.file ${LOGFILE} \
--server.endpoint tcp://127.0.0.1:$PORT \
--javascript.startup-directory js \
--javascript.app-path js${PS}apps \
--javascript.script $SCRIPT \
--no-server \
--temp-path ${PS}var${PS}tmp \
"${ARGS[@]}" \
$VXML
if test $? -eq 0; then
echo "removing ${LOGFILE} ${DBDIR}"
rm -rf ${LOGFILE} ${DBDIR}
else
echo "failed - don't remove ${LOGFILE} ${DBDIR} - here's the logfile:"
cat ${LOGFILE}
fi
echo Server has terminated.