| | #!/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" |
| |
|