# line ending management script
# CRLF - windows default ('\r\n')
# LF   - unix default ('\n')
# arguments:
# ?crlf - print all .cpp and .h files with CRLF line endings
# ?lf   - print all .cpp and .h files with LF line endings
# crlf - replace line endings in all .cpp and .h files to CRLF
# lf   - replace line endings in all .cpp and .h files to LF

if [ "$1" == "?crlf" ] || [ $# -eq 0 ]; then
 echo 'cpp and h files with CRLF line endings:'
 find {*.cpp,*.h} -not -type d -exec file "{}" ";" | grep CRLF | sed 's/:.*//g'
elif [ "$1" == "?lf" ]; then
 echo 'cpp and h files with LF line endings:'
 find {*.cpp,*.h} -not -type d -exec file "{}" ";" | grep -v CRLF | sed 's/:.*//g'
fi
if [ "$1" == "crlf" ]; then
 echo 'replacing LF with CRLF in all cpp and h files:'
 find {*.cpp,*.h} -not -type d -exec file "{}" ";" | grep -v CRLF | sed 's/:.*//g' | while read fn; do
  echo "$fn"
  sed -i 's/$/\r/g' $fn
 done
elif [ "$1" == "lf" ]; then
 echo 'replacing CRLF with LF in all cpp and h files:'
 find {*.cpp,*.h} -not -type d -exec file "{}" ";" | grep CRLF | sed 's/:.*//g' | while read fn; do
  echo "$fn"
  sed -i 's/\r\n/\n/g' $fn
 done
fi