#!/bin/sh
# delete_trailing_whitespace.sh
# 2010-08-16
# by Gernot WALZL
# Deletes all trailing whitespace
# recursively for all files with a given extension inside a folder.
path="$1"
ext="$2"
print_usage () {
echo "Usage:"
echo " delete_trailing_whitespace.sh path extension"
echo " delete_trailing_whitespace.sh file"
}
delete_trailing_whitespace () {
file="$1"
if [ -w "${file}" ]; then
sed 's/[ \t]*$//' "${file}" > "${file}.new"
if [ $(diff "${file}" "${file}.new" | wc -l) -gt 0 ]; then
echo "${file}"
mv "${file}.new" "${file}"
else
rm "${file}.new"
fi
fi
}
if [ -d "$path" ]; then
if [ -z "$ext" ]; then
print_usage
exit 1
fi
files=$(find "${path}" -name "*.${ext}")
for file in $files; do
delete_trailing_whitespace "$file"
done
elif [ -f "$path" ]; then
file="$path"
delete_trailing_whitespace "$file"
else
print_usage
exit 1
fi