/
Targy
/
OpenGEA
Обзор
Документация
Войти
/
Targy
/
OpenGEA
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
scripts/setup-agents.sh
90 строк
2 KB
kotler
OpenGEA: усечённый релиз для opensource
14 мар 2026, 19:23
14 мар 2026, 19:23
cae5e88
Код
Авторство
О чём код?
#!/usr/bin/env bash # Установка зависимостей агентов OpenGEA (один агент или все). # Запуск из корня репозитория: ./scripts/setup-agents.sh [agent_name|--all] set -e SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" REPO_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)" BACKEND="$REPO_ROOT/backend" AGENTS_DIR="$BACKEND/agents" PORTS_YAML="$AGENTS_DIR/ports.yaml" VENV="${GEA_VENV:-$REPO_ROOT/.venv}" if [ -d "$BACKEND/.venv" ] && [ ! -d "$VENV" ]; then VENV="$BACKEND/.venv" fi PYTHON="${VENV}/bin/python" if [ -n "$VIRTUAL_ENV" ]; then PYTHON="$(command -v python)" fi usage() { echo "Usage: $0 [agent_name|--all]" echo " --all install dependencies for all agents from ports.yaml" echo " agent_name install dependencies for one agent (e.g. demo-agent, orchestrator)" echo "" echo "Agents (from ports.yaml):" grep -E '^[a-z].*: [0-9]+' "$PORTS_YAML" 2>/dev/null | sed 's/:.*//' | sed 's/^/ /' exit 0 } # Список имён агентов из ports.yaml (без комментариев) get_agent_list() { grep -E '^[a-z0-9_-]+: [0-9]+' "$PORTS_YAML" 2>/dev/null | sed 's/:.*//' | tr -d ' ' } # Проверка: есть ли у агента requirements.txt agent_has_deps() { local name="$1" local dir="$AGENTS_DIR/$name" [ -f "$dir/requirements.txt" ] } setup_one() { local name="$1" local dir="$AGENTS_DIR/$name" if [ ! -d "$dir" ]; then echo "Skip $name: directory not found" return 0 fi if [ ! -f "$dir/requirements.txt" ]; then echo "Skip $name: no requirements.txt" return 0 fi echo "Installing dependencies for $name..." "$PYTHON" -m pip install -r "$dir/requirements.txt" echo " OK $name" } if [ "${1:-}" = "--help" ] || [ "${1:-}" = "-h" ]; then usage fi if [ ! -f "$PORTS_YAML" ]; then echo "ports.yaml not found: $PORTS_YAML" exit 1 fi if [ "${1:-}" = "--all" ]; then for name in $(get_agent_list); do setup_one "$name" done echo "Done. All agents' dependencies installed." exit 0 fi if [ -n "${1:-}" ]; then name="$1" dir="$AGENTS_DIR/$name" if [ ! -d "$dir" ]; then echo "Agent directory not found: $dir" exit 1 fi if [ ! -f "$dir/requirements.txt" ]; then echo "No requirements.txt in $name" exit 1 fi setup_one "$name" echo "Done." exit 0 fi usage