#!/usr/bin/env bash # GaP (graph-as-policy) setup on AutoDL rental. Tsinghua pip, network_turbo for HF/GitHub, HF_TOKEN for gated. set -o pipefail source /etc/network_turbo 2>/dev/null export HF_TOKEN=hf_ export HF_HOME=/root/autodl-tmp/hf_cache export PIP_INDEX_URL=https://pypi.tuna.tsinghua.edu.cn/simple export UV_DEFAULT_INDEX=https://pypi.tuna.tsinghua.edu.cn/simple export UV_INDEX_URL=https://pypi.tuna.tsinghua.edu.cn/simple export PATH=$HOME/.local/bin:$PATH cd /root/autodl-tmp echo "=== [0] turbo check ===" curl -s -m 15 -o /dev/null -w "hf.co: %{http_code} %{time_total}s\n" https://huggingface.co/api/models/bert-base-uncased echo "=== [1] clone GaP ===" [ -d graph-as-policy ] || git clone --depth 1 https://github.com/graph-robots/graph-as-policy 2>&1 | tail -1 ls graph-as-policy | head -14 echo "=== [2] uv ===" if ! command -v uv >/dev/null; then curl -LsSf https://astral.sh/uv/install.sh | sh 2>&1 | tail -1 fi export PATH=$HOME/.local/bin:$PATH uv --version || { echo UV_FAIL; exit 1; } echo "=== [3] uv sync (engine + LIBERO) ===" cd graph-as-policy for k in 1 2 3 4; do uv sync 2>&1 | tail -4 && break; echo "uv sync retry $k"; sleep 8; done echo "UV_SYNC_RC=$?" echo "=== [4] gap skills install --all ===" for k in 1 2 3; do uv run gap skills install --all 2>&1 | tail -6 && break; echo "skills retry $k"; sleep 8; done echo "SKILLS_RC=$?" echo "=== [5] sanity: gap CLI ===" uv run gap --help 2>&1 | head -8 echo GAP_SETUP_DONE