26 lines
794 B
Bash
Executable File
26 lines
794 B
Bash
Executable File
#!/bin/sh
|
|
set -eu
|
|
ROOT="/Users/kris/code/StoryForge"
|
|
PID_FILE="$ROOT/data/collector/collector.pid"
|
|
LOG_FILE="$ROOT/data/collector/collector.log"
|
|
VENV="$ROOT/collector-service/.venv311"
|
|
mkdir -p "$ROOT/data/collector"
|
|
if [ ! -x "$VENV/bin/python" ]; then
|
|
/opt/homebrew/bin/python3.11 -m venv "$VENV"
|
|
. "$VENV/bin/activate"
|
|
pip install -q -r "$ROOT/collector-service/requirements.txt"
|
|
else
|
|
. "$VENV/bin/activate"
|
|
fi
|
|
if [ -f "$PID_FILE" ]; then
|
|
PID="$(cat "$PID_FILE" || true)"
|
|
if [ -n "$PID" ] && kill -0 "$PID" 2>/dev/null; then
|
|
echo "collector already running: $PID"
|
|
exit 0
|
|
fi
|
|
fi
|
|
cd "$ROOT/collector-service"
|
|
nohup "$VENV/bin/python" -m uvicorn app.main:app --host 0.0.0.0 --port 8081 >"$LOG_FILE" 2>&1 &
|
|
echo $! > "$PID_FILE"
|
|
echo "collector started: $(cat "$PID_FILE")"
|