#!/bin/bash
set -euo pipefail
SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd -P)"
WORKSPACE="$(cd -- "${SCRIPT_DIR}/../.." >/dev/null 2>&1 && pwd -P)"
ROS_DISTRO="${ROS_DISTRO:-humble}"
echo "=== IB-Robot Tracing Setup (ROS 2 ${ROS_DISTRO}) ==="
echo "Note: tracing dependencies are now installed by ./scripts/setup.sh."
echo "This script remains as a retrofit shortcut for already-initialized workspaces."
echo "--- Installing LTTng ---"
sudo apt-get update -qq
sudo apt-get install -y --no-install-recommends \
lttng-tools \
liblttng-ust-dev \
python3-lttngust \
python3-babeltrace \
babeltrace2
echo "--- Installing ros2_tracing ---"
sudo apt-get install -y --no-install-recommends \
"ros-${ROS_DISTRO}-ros2trace" \
"ros-${ROS_DISTRO}-tracetools" \
"ros-${ROS_DISTRO}-tracetools-analysis" \
"ros-${ROS_DISTRO}-tracetools-launch" \
"ros-${ROS_DISTRO}-tracetools-read" \
"ros-${ROS_DISTRO}-tracetools-trace"
echo ""
echo "--- Verification ---"
echo -n "lttng: "; lttng --version 2>/dev/null || echo "NOT FOUND"
echo -n "ros2 trace: "; ros2 trace --help >/dev/null 2>&1 && echo "OK" || echo "NOT FOUND"
echo -n "babeltrace2: "; babeltrace2 --version 2>/dev/null | head -1 || echo "NOT FOUND"
echo -n "lttngust: "; python3 -c "import lttngust; print('OK')" 2>/dev/null || echo "NOT FOUND"
if ! groups | grep -q tracing; then
sudo usermod -aG tracing "$(whoami)" 2>/dev/null || true
echo "Note: added to 'tracing' group — may need re-login."
fi
echo ""
echo "=== Setup complete ==="
echo "Usage:"
echo " ./scripts/setup.sh # regular workspace setup now includes tracing deps"
echo " ros2 launch robot_config robot.launch.py enable_tracing:=true ..."
echo " # Or manually:"
echo " bash scripts/tracing/start_trace.sh"