Team Ai
Apppublic

Veer15/openenv-distributed-systems-debugging

sourceHugging Faceupdated 6mo agoView on Hugging Face
0likes
setup-dev.sh87 linesDownload Raw Back to root
1#!/usr/bin/env bash2set -euo pipefail3 4ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"5VENV_DIR="${ROOT_DIR}/.venv"6REQUIRED_PYTHON="3.12"7PYTHON_BIN="python3.12"8 9if ! command -v "$PYTHON_BIN" >/dev/null && command -v python3 >/dev/null; then10  if [ "$(python3 -c 'import sys; print(f"{sys.version_info.major}.{sys.version_info.minor}")')" = "$REQUIRED_PYTHON" ]; then11    PYTHON_BIN="python3"12  fi13fi14 15require_cmd() {16  local name="$1"17  local install_hint="$2"18  if ! command -v "$name" >/dev/null; then19    echo "[ERROR] Missing required command: $name"20    echo "        Install hint: $install_hint"21    exit 122  fi23}24 25optional_cmd_note() {26  local name="$1"27  local note="$2"28  if ! command -v "$name" >/dev/null; then29    echo "[WARN] Optional command not found: $name"30    echo "       $note"31  fi32}33 34echo "[INFO] Preflight checks"35require_cmd "$PYTHON_BIN" "Install Python 3.12 (binary: python3.12 or python3==3.12)"36require_cmd bun "Install Bun: https://bun.sh"37require_cmd redis-server "Install Redis server"38require_cmd redis-cli "Install Redis CLI"39require_cmd curl "Install curl"40require_cmd jq "Install jq"41 42optional_cmd_note docker "Needed for local container validation and HF parity checks."43optional_cmd_note uv "Used for regenerating uv.lock when dependencies change."44 45echo "[INFO] Creating virtual environment"46if [ -x "$VENV_DIR/bin/python" ]; then47  EXISTING_PY_VERSION="$($VENV_DIR/bin/python -c 'import sys; print(f"{sys.version_info.major}.{sys.version_info.minor}")')"48  if [ "$EXISTING_PY_VERSION" != "$REQUIRED_PYTHON" ]; then49    echo "[INFO] Recreating .venv with Python 3.12 (found $EXISTING_PY_VERSION)"50    rm -rf "$VENV_DIR"51  fi52fi53 54if [ ! -d "$VENV_DIR" ]; then55  "$PYTHON_BIN" -m venv "$VENV_DIR"56fi57 58# shellcheck disable=SC109159source "$VENV_DIR/bin/activate"60 61python -m pip install --upgrade pip62pip install -r "$ROOT_DIR/requirements.txt"63 64echo "[INFO] Installing Bun dependencies"65( cd "$ROOT_DIR/mesh/gateway" && bun install )66( cd "$ROOT_DIR/mesh/auth" && bun install )67( cd "$ROOT_DIR/mesh/worker" && bun install )68 69chmod +x "$ROOT_DIR/start.sh"70chmod +x "$ROOT_DIR/inference.py" || true71 72if command -v uv >/dev/null && [ ! -f "$ROOT_DIR/uv.lock" ]; then73  echo "[INFO] Generating uv.lock"74  ( cd "$ROOT_DIR" && uv lock )75fi76 77echo "[INFO] Running OpenEnv validation"78openenv validate "$ROOT_DIR"79 80echo "[INFO] Setup complete"81echo "[NEXT] Export required inference vars:"82echo "       API_BASE_URL=<endpoint>"83echo "       MODEL_NAME=<model>"84echo "       HF_TOKEN=<api_key>"85echo "[NEXT] Start services: APP_ROOT=$ROOT_DIR MESH_ROOT=$ROOT_DIR/mesh ./start.sh"86echo "[NEXT] Run baseline: HF_TOKEN=... API_BASE_URL=... MODEL_NAME=... python inference.py"87