#!/bin/bash

# Array para guardar los PIDs
pids=()

# Función para matar a todos los procesos hijos
cleanup() {
    echo "Recibido Ctrl+C. Terminando procesos..."
    for pid in "${pids[@]}"; do
        echo "Terminando proceso PID $pid"
        # kill -SIGINT "$pid" 2>/dev/null
	exec kill '-15' $pid
    done
    # Esperamos que terminen
    wait
    echo "Todos los procesos han sido terminados."
    exit 0
}

# Capturar SIGINT (Ctrl+C)
trap cleanup SIGINT

# export CLASSPATH=../class:../class/RoboGraphROS1-1.0.jar:../class/RoboGraph-1.0.jar:../class/ROS1Messages-1.0.jar:../class/ROS1CustomMessages-1.0.jar:../class/lib/*

export CLASSPATH=../class:../class/*:../class/lib/*

export DGP_PATH=../
export ROS_MASTER_URI=http://127.0.0.1:11311
export ROS_IP=127.0.0.1

# Iniciar los programas en background y guardar sus PIDs
java org.EZMoBots.roboGraphROS1.Gui.ROSGUI $@& pids+=($!)
# ./programa2 & pids+=($!)
# ./programa3 & pids+=($!)

# Esperar a que terminen todos (sin terminar el script antes)
wait
