pi05tests-openpi-multiarm / openpi /scripts /launch_preprocess_aloha_detached.sh
lsnu's picture
Upload openpi/scripts/launch_preprocess_aloha_detached.sh with huggingface_hub
009c5a5 verified
#!/usr/bin/env bash
set -euo pipefail
SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)"
OPENPI_ROOT="${OPENPI_ROOT:-$(cd -- "$SCRIPT_DIR/.." && pwd)}"
ROOT="${ROOT:-$HOME/pi05prep-work}"
LOGDIR="${LOGDIR:-$ROOT/logs}"
TIMESTAMP="$(date -u +%Y%m%dT%H%M%SZ)"
LOGFILE="$LOGDIR/preprocess_aloha_${TIMESTAMP}.log"
PIDFILE="$LOGDIR/preprocess_aloha_${TIMESTAMP}.pid"
SESSION_FILE="$LOGDIR/preprocess_aloha_${TIMESTAMP}.session"
LATEST_LOG_LINK="$LOGDIR/preprocess_aloha_latest.log"
LATEST_PID_LINK="$LOGDIR/preprocess_aloha_latest.pid"
LATEST_SESSION_LINK="$LOGDIR/preprocess_aloha_latest.session"
SESSION_NAME="pi05prep_aloha_${TIMESTAMP}"
RUN_SCRIPT_PATH="${RUN_SCRIPT_PATH:-$SCRIPT_DIR/run_preprocess_aloha.sh}"
WAIT_FOR_SESSION="${WAIT_FOR_SESSION:-}"
WAIT_POLL_SECONDS="${WAIT_POLL_SECONDS:-60}"
mkdir -p "$LOGDIR"
tmux new-session -d -s "$SESSION_NAME" "cd '$ROOT' && unset LEROBOT_HOME && export SKIP_PREPARE=1 && export OPENPI_ROOT='${OPENPI_ROOT}' && export HF_HOME='${HF_HOME:-$ROOT/hf-home}' && export HF_HUB_CACHE='${HF_HUB_CACHE:-${HF_HOME:-$ROOT/hf-home}/hub}' && export HF_DATASETS_CACHE='${HF_DATASETS_CACHE:-${HF_HOME:-$ROOT/hf-home}/datasets}' && export HF_LEROBOT_HOME='${HF_LEROBOT_HOME:-${HF_HOME:-$ROOT/hf-home}/lerobot}' && if [[ -n '${WAIT_FOR_SESSION}' ]]; then printf '%s Waiting for session %s before starting ALOHA pipeline\n' \"\$(date -u +%Y-%m-%dT%H:%M:%SZ)\" '${WAIT_FOR_SESSION}' >> '$LOGFILE'; while tmux has-session -t '${WAIT_FOR_SESSION}' 2>/dev/null; do sleep '${WAIT_POLL_SECONDS}'; done; fi && bash '$RUN_SCRIPT_PATH' >> '$LOGFILE' 2>&1"
PID="$(tmux list-panes -t "$SESSION_NAME" -F '#{pane_pid}' | head -n 1)"
echo "$PID" >"$PIDFILE"
echo "$SESSION_NAME" >"$SESSION_FILE"
ln -sfn "$LOGFILE" "$LATEST_LOG_LINK"
ln -sfn "$PIDFILE" "$LATEST_PID_LINK"
ln -sfn "$SESSION_FILE" "$LATEST_SESSION_LINK"
printf 'session=%s\npid=%s\nlog=%s\npidfile=%s\nsession_file=%s\n' "$SESSION_NAME" "$PID" "$LOGFILE" "$PIDFILE" "$SESSION_FILE"