run_map_update.sh 1.0 KB

12345678910111213141516171819202122232425262728293031
  1. #!/bin/bash
  2. # 检查参数数量
  3. if [ "$#" -ne 3 ]; then
  4. echo "Error: Incorrect number of arguments"
  5. echo "Usage: $0 arg1 arg2 arg3"
  6. exit 1
  7. fi
  8. SUDO_PASSWORD=$1
  9. CONTAINER_NAME=$2
  10. DOWNLOAD_FILE_PATH=$3
  11. UPDATE_DATA_PATH="/home/cicv/work/pji_desktop/map_update/data"
  12. CONTAINER_WORKSPACE="/home/cartographer_detailed_comments_ws-master"
  13. # 清除历史文件
  14. echo "$SUDO_PASSWORD" | sudo -S rm -rf $UPDATE_DATA_PATH/*
  15. # 解压地图更新对应的压缩包
  16. unzip "$DOWNLOAD_FILE_PATH" -d "$UPDATE_DATA_PATH"
  17. # 检查容器启动状态
  18. if [ "$(echo "$SUDO_PASSWORD" | sudo -S docker inspect -f '{{.State.Running}}' $CONTAINER_NAME)" = "true" ]; then
  19. echo "Container $CONTAINER_NAME is already running."
  20. else
  21. echo "Starting container $CONTAINER_NAME..."
  22. echo "$SUDO_PASSWORD" | sudo -S docker start "$CONTAINER_NAME"
  23. fi
  24. # 容器内执行地图更新脚本
  25. echo "$SUDO_PASSWORD" | sudo -S docker exec "$CONTAINER_NAME" /bin/bash -c "source $CONTAINER_WORKSPACE/devel_isolated/setup.sh && $CONTAINER_WORKSPACE/build_map.sh $CONTAINER_WORKSPACE/config.json"