hesabixArc/run_local.sh
2025-11-04 01:51:23 +00:00

48 lines
938 B
Bash
Executable file

#!/usr/bin/env bash
set -euo pipefail
PROJECT_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
API_DIR="$PROJECT_ROOT/hesabixAPI"
cd "$API_DIR"
if [ ! -d .venv ]; then
python3 -m venv .venv
fi
source .venv/bin/activate
python -m pip install --upgrade pip
# نصب با وابستگی‌های توسعه برای اجرای تست‌ها
pip install --no-input -e .[dev]
# ایجاد .env در صورت نبود
if [ ! -f .env ]; then
cp -n env.example .env || true
fi
CMD="${1:-serve}"
case "$CMD" in
migrate)
alembic upgrade head
;;
test)
pytest -q
;;
serve)
uvicorn app.main:app --reload --host 0.0.0.0 --port 8000
;;
serve-workers)
# اجرای uvicorn با چند worker (بدون reload)
WORKERS=${WORKERS:-4}
uvicorn app.main:app --host 0.0.0.0 --port 8000 --workers "$WORKERS"
;;
*)
echo "Usage: $0 [serve|serve-workers|migrate|test]"
exit 1
;;
esac