blob: 09309159798b8ca6046c34fb8a92675854956ebf [file] [log] [blame]
#!/bin/bash
set -e
trap "trap - SIGTERM && kill -- -$$" SIGINT SIGTERM EXIT
GIT_ROOT=$(git rev-parse --show-toplevel)
port=8080
# Use cargo watch / trunk watch to automatically rebuild on source changes.
watch=0
while [[ "$#" -gt 0 ]]; do
case $1 in
-p|--port) port="$2"; shift ;;
-s|--streams_dir) streams_dir="$2"; shift ;;
-a|--avm_build_dir) avm_build_dir="$2"; shift ;;
-w|--watch) watch="1" ;;
*) echo "Unknown arg: $1"; exit 1 ;;
esac
shift
done
if [[ -z ${streams_dir} || -z ${avm_build_dir} ]]; then
echo "Usage: ./launch_server_docker.sh --streams_dir <STREAMS_PATH> --avm_build_dir <AVM_BUILD_PATH> [--port <PORT>]"
exit 1
fi
mkdir -p ${streams_dir}
SERVER_ARGS=(--extract-proto ${avm_build_dir}/extract_proto\
--dump-obu ${avm_build_dir}/tools/dump_obu --working-dir ${streams_dir}\
--frontend-root ${GIT_ROOT}/tools/avm_analyzer/avm_analyzer_app/dist --ip "127.0.0.1" --port ${port})
if [[ ${watch} -eq 1 ]]; then
trunk watch --release ${GIT_ROOT}/tools/avm_analyzer/avm_analyzer_app/index.html &
WATCH_CMD="run --release --bin avm-analyzer-server -- ${SERVER_ARGS[@]}"
cargo watch -w avm_analyzer_server -x "${WATCH_CMD}"
else
trunk build --release ${GIT_ROOT}/tools/avm_analyzer/avm_analyzer_app/index.html
cargo run --release --bin avm-analyzer-server -- ${SERVER_ARGS[@]}
fi