# this line does quite a bit, so let's break it down
# 
# find mm
# use "find" to look in the "mm" directory
# this ensures we don't try to format stuff in the submodules
# 
# -type f
# only look for files
# 
# -name "*.c" -o -name "*.cpp"
# find all .c and .cpp files
# 
# -name "*.h" ! -path "mm/src/**.h" ! -path "mm/include/**.h"
# find all .h files that aren't in mm/src or mm/include
# this is because zret decomp only runs clang-format on c files
# https://github.com/zeldaret/mm/blob/b7e5468ca16315a7e322055eff3d97fe980bbc25/format.py#L182
# 
# ! -path "mm/assets/*"
# asset headers are autogenerated, don't fight them
#
# | sed 's| |\\ |g'
# pipe the result of find into sed to
# ensure all the paths returned by find have spaces escaped
# 
# | xargs clang-format-14 -i
# use xargs to take each path we've found
# and pass it as an argument to clang-format

find mm -type f \( -name "*.c" -o -name "*.cpp" -o \( -name "*.h" ! -path "mm/src/**.h" ! -path "mm/include/**.h" \) \) ! -path "mm/assets/*" | sed 's| |\\ |g' | xargs clang-format-14 -i
