check-nl-at-eof.sh 718 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. #!/usr/bin/env bash
  2. set -euo pipefail
  3. cd -P -- "$(dirname -- "$0")/.."
  4. nl_at_eof() {
  5. local file="$1"
  6. if ! [ -f "$file" ]; then
  7. return
  8. fi
  9. case "$file" in
  10. *.png|*rebar3)
  11. return
  12. ;;
  13. scripts/erlfmt)
  14. return
  15. ;;
  16. *.jks)
  17. return
  18. ;;
  19. esac
  20. local lastbyte
  21. lastbyte="$(tail -c 1 "$file" 2>&1)"
  22. if [ "$lastbyte" != '' ]; then
  23. echo "$file"
  24. return 1
  25. fi
  26. }
  27. n=0
  28. while read -r file; do
  29. if ! nl_at_eof "$file"; then
  30. echo "nl_at_eof: $file"
  31. # shellcheck disable=SC1003
  32. sed -i -e '$a\' "$file"
  33. n=$(( n + 1 ))
  34. fi
  35. done < <(git ls-files)
  36. exit $n