#!/usr/bin/env bash
ACTION=${1:---start}
PORT=${2:-9001}
autobahn_pid() {
echo $(lsof -i:$PORT | tail -1 | awk '{ print $2 }')
}
ensure_autobahn_is_not_running() {
local pid=$(autobahn_pid)
if [[ $pid -gt 0 ]]; then
autobahn_stop
pid=$(autobahn_pid)
if [[ $pid -gt 0 ]]; then
echo "Cannot start autobahn server: $PORT already in use"
exit 1
fi
fi
}
autobahn_start() {
ensure_autobahn_is_not_running
if [[ -n "${USE_DOCKER}" ]]; then
docker run -it --rm \
-v "${PWD}:/config" \
-v "${REPORTS_DIR}:/reports" \
-p $PORT:$PORT \
--name fuzzingserver \
crossbario/autobahn-testsuite
else
if [[ -f 'autobahn-server.json' ]]; then
wstest -m fuzzingserver -s 'autobahn-server.json'
else
filename=$(find . -name "autobahn-server.json" -print -quit)
if [[ -f "$filename" ]]; then
wstest -m fuzzingserver -s "$filename"
fi
fi
fi
}
autobahn_stop() {
local pid=$(autobahn_pid)
kill $pid &> /dev/null
}
case "$ACTION" in
"--start")
autobahn_start
;;
"--stop")
autobahn_stop
;;
*)
echo "Unknown argument: $ACTION"
exit 1
esac