#!/bin/bash
# 检查到未定义的变量则停止执行并报错
set -u

SIMULATION_PATH="/home/cicv/work/pji_desktop/simulation"
MAP2GAZEBO_LOG_PATH="$SIMULATION_PATH/logs/run_map2gazebo.log"
MAP2GAZEBO_START_FLAG="map2gazebo running"

# 激活conda环境
source activate simulation

# 清除环境
## kill ros节点
rosnode kill --all
## 删除历史日志
safe-rm "$MAP2GAZEBO_LOG_PATH"
sleep 0.5

# 执行命令
command="cd $SIMULATION_PATH/catkin_map2gazebo && safe-rm -r build devel && catkin_make && source devel/setup.bash && roslaunch --screen map2gazebo map2gazebo.launch "
nohup script -q -c bash -c "$command" > "$MAP2GAZEBO_LOG_PATH" 2>&1 &
disown

# 检查脚本启动标志
tail -f "$MAP2GAZEBO_LOG_PATH" | while read LINE; do
    if echo "$LINE" | grep -q "$MAP2GAZEBO_START_FLAG"; then
      # 此标志输出给前端,请勿删除或修改!
      echo "Service map2gazebo started."
      break
    fi
done