#!/usr/bin/env bash # Make sure file has a trailing newline f="$1" if [ -z "$f" ]; then echo "usage: $0 " exit 1 fi if [ ! -f "$f" ]; then exit 0 fi if [[ $(tail -c1 "$f") ]]; then echo "$f: No newline at end of file" echo '' >> "$f" exit 1 fi if [[ ! $(tail -c2 "$f") ]]; then echo "$f: Extra trailing newline" exit 1 fi if grep -q $'\r' "$f"; then echo "$f: DOS-style newlines" dos2unix "$f" &> /dev/null exit 1 fi if grep -q $'[\t ]$' "$f"; then echo "$f: Trailing whitespace" sed -i $'s/[ \t]*$//' "$f" exit 1 fi exit 0