#!/bin/bash
if [[ ! -f README.md ]]; then
	cd ..
fi

folder_list=(
  "./mission"
  "./linux"
  "./bsp_q7s"
  "./bsp_linux_board"
  "./bsp_hosted"
  "./bsp_egse"
  "./test"
  "./common"
  "./dummies"
)

cmake_fmt="cmake-format"
file_selectors="-iname CMakeLists.txt"
if command -v ${cmake_fmt} &> /dev/null; then
  echo "Auto-formatting all CMakeLists.txt files"
  ${cmake_fmt} -i CMakeLists.txt
  for dir in ${folder_list[@]}; do
  	find ${dir} ${file_selectors} | xargs ${cmake_fmt} -i
  done
  ${cmake_fmt} -i ./thirdparty/gomspace-sw/CMakeLists.txt
else
  echo "No ${cmake_fmt} tool found, not formatting CMake files"
fi

cpp_format="clang-format"
file_selectors="-iname *.h -o -iname *.cpp -o -iname *.c -o -iname *.tpp"
if command -v ${cpp_format} &> /dev/null; then
  for dir in ${folder_list[@]}; do
    echo "Auto-formatting C/C++ files in ${dir} recursively"
    find ${dir} ${file_selectors} | xargs ${cpp_format} --style=file -i
  done
  find ./unittest ${file_selectors} -o -type d -name build -prune | \
	xargs clang-format --style=file -i
else
  echo "No ${cpp_format} tool found, not formatting C++/C files"
fi