cyphesis/scripts/check_header_guards.sh

29 lines
765 B
Bash
Raw Permalink Normal View History

#!/bin/bash
check_header_file() {
GUARD=$(echo $1 | sed "s/\([A-Z0-9a-z]\)\([A-Z0-9]\)\([a-z]\)/\1_\2\3/g" | sed "s/\([a-z]\)\([A-Z0-9]\)\([A-Z0-9]\)/\1_\2\3/g" | tr "[:lower:]" "[:upper:]" | sed "s/[/\.]/_/g")
INFILE=$(grep "^#ifndef .*_H$" $@ | sed "s/^#ifndef \([A-Z0-9_]\+\)$/\1/")
if [ "${GUARD}" != "${INFILE}" ]
then
if [ "${INFILE}" == "" ]
then
echo "No guard in $1"
else
true
sed -i "s/${INFILE}/${GUARD}/" $1
echo "Mismatch in $1 ${INFILE} ${GUARD} corrected."
fi
else
if [ $(grep ${GUARD} $1 | wc -l) != "3" ]
then
echo "Broken guards in $1"
fi
fi
return 0
}
for i in */*.h
do
check_header_file $i
done