#!/usr/bin/env bash

# shellcheck disable=SC2044
for foo in $(find "$(pwd)" -name "package.xml") ; do
  package_name=$(basename "$(realpath "$(dirname "$foo")")")
  echo Entering package: "$package_name"
  cd "$(realpath "$(dirname "$foo")")" || exit
  if grep -q -i "roslaunch_add_file_check" CMakeLists.txt; then
    echo Package "$package_name" already has roslaunch_add_file_check - skipping
  else
    if [[ -n $(find . -type f -name "*.launch") ]] ; then
      echo Adding roslaunch_add_file_check to "$package_name"
cat <<EOT >> CMakeLists.txt

## WARNING: automatically generated code; can be (and probably is) very buggy
if(CATKIN_ENABLE_TESTING)
find_package(catkin REQUIRED COMPONENTS
roslaunch
)
EOT

## The roslaunch_add_file_check macro supports as parameter either a folder or a single launchfile
## Here we call the macro for each of the launchfiles in the package
  for launchfile in $(find . -type f -name "*.launch") ; do
cat <<EOT >> CMakeLists.txt
roslaunch_add_file_check(${launchfile})
EOT
  done

## Close if(CATKIN_ENABLE_TESTING)
cat <<EOT >> CMakeLists.txt
endif()
EOT

    fi
  fi
done
