Events-WebAPI fix and tweak
This commit is contained in:
86
Events-WebApi/start-all.sh
Executable file
86
Events-WebApi/start-all.sh
Executable file
@@ -0,0 +1,86 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
WEBAPI_PROJECT="$ROOT_DIR/Events.WebAPI/Events.WebAPI.csproj"
|
||||
FILESAPI_PROJECT="$ROOT_DIR/Events.FilesAPI/Events.FilesAPI.csproj"
|
||||
CLIENTAPP_DIR="$ROOT_DIR/Events.ClientApp"
|
||||
|
||||
pids=()
|
||||
|
||||
start_process() {
|
||||
if command -v setsid >/dev/null 2>&1; then
|
||||
setsid "$@" &
|
||||
else
|
||||
"$@" &
|
||||
fi
|
||||
|
||||
pids+=($!)
|
||||
}
|
||||
|
||||
stop_process() {
|
||||
local signal="$1"
|
||||
local pid="$2"
|
||||
|
||||
kill "-$signal" -- "-$pid" 2>/dev/null || kill "-$signal" "$pid" 2>/dev/null || true
|
||||
}
|
||||
|
||||
cleanup() {
|
||||
local exit_code=$?
|
||||
trap - INT TERM EXIT
|
||||
|
||||
if ((${#pids[@]} > 0)); then
|
||||
echo
|
||||
echo "Stopping Events stack..."
|
||||
|
||||
for pid in "${pids[@]}"; do
|
||||
stop_process INT "$pid"
|
||||
done
|
||||
|
||||
sleep 1
|
||||
|
||||
for pid in "${pids[@]}"; do
|
||||
stop_process TERM "$pid"
|
||||
done
|
||||
|
||||
sleep 1
|
||||
|
||||
for pid in "${pids[@]}"; do
|
||||
stop_process KILL "$pid"
|
||||
done
|
||||
|
||||
wait "${pids[@]}" 2>/dev/null || true
|
||||
fi
|
||||
|
||||
exit "$exit_code"
|
||||
}
|
||||
|
||||
trap cleanup INT TERM EXIT
|
||||
|
||||
if [[ ! -d "$CLIENTAPP_DIR/node_modules" ]]; then
|
||||
echo "Missing node_modules in Events.ClientApp."
|
||||
echo "Run: cd \"$CLIENTAPP_DIR\" && npm install"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
"$ROOT_DIR/stop-all.sh" >/dev/null 2>&1 || true
|
||||
|
||||
echo "Starting Events.WebAPI on https://localhost:7295"
|
||||
start_process dotnet run --launch-profile https --project "$WEBAPI_PROJECT"
|
||||
|
||||
echo "Starting Events.FilesAPI on https://localhost:7296"
|
||||
start_process dotnet run --launch-profile https --project "$FILESAPI_PROJECT"
|
||||
|
||||
echo "Starting Events.ClientApp on http://localhost:5173"
|
||||
start_process env CLIENTAPP_DIR="$CLIENTAPP_DIR" bash -c 'cd "$CLIENTAPP_DIR" && npm run dev'
|
||||
|
||||
echo
|
||||
echo "Events stack is starting."
|
||||
echo "WebAPI: https://localhost:7295"
|
||||
echo "FilesAPI: https://localhost:7296"
|
||||
echo "ClientApp: http://localhost:5173"
|
||||
echo
|
||||
echo "Press Ctrl+C to stop all processes."
|
||||
|
||||
wait
|
||||
Reference in New Issue
Block a user