* header_check.sh: Apply new changes from Scott.

I see lot of errors like:
The following string was expected to be '.cpp' or '.h':
 LyX.cpp: In member function 'void lyx::LyX::printError(const lyx::ErrorItem&)':
Warning: the error was not parsed correctly.
The following string was expected to be '.cpp' or '.h':
 LyX.cpp: In function 'void lyx::error_handler(int)':
This commit is contained in:
Pavel Sanda 2013-05-14 23:59:42 -07:00
parent 7a8995f295
commit b1d8bdf670

View File

@ -36,10 +36,33 @@ LOG_FILE="$(basename $0).log"
# ifdefs... # ifdefs...
EXCLUDE='\(debug.h\|cstdio\)' EXCLUDE='\(debug.h\|cstdio\)'
NCORES=$(grep "CPU" /proc/cpuinfo | wc -l)
function BUILD_FN () function BUILD_FN ()
{ {
PREFIX=''
# This is not a clean make. # This is not a clean make.
make -j$(grep "CPU" /proc/cpuinfo | wc -l) IFS='' ERROR_OUTPUT=$(make -j${NCORES} 2>&1 >/dev/null)
ERROR_CODE=$?
# Without the grep, ERROR_OUTPUT might contain messages such as:
# 2885 translated messages, 2169 fuzzy translations, 1356 untranslated messages.
ERROR_OUTPUT=$(echo "${ERROR_OUTPUT}" | grep -i "error")
# The sed regex is more strict than it needs to be.
if (( ERROR_CODE != 0 )); then
cppORh=$(echo "${ERROR_OUTPUT}" | head -n 1 | \
sed 's/.*\.\(cpp\|h\):[0-9]\+:[0-9]\+: error: .*/\1/')
if [ "${cppORh}" = "cpp" ]; then
PREFIX='suspicious: '
elif [ "${cppORh}" != "h" ]; then
echo -e "Warning: the error was not parsed correctly."\
"\nThe following string was expected to be"\
"'.cpp' or '.h': \n ${cppORh}" >&2
fi
fi
return "${ERROR_CODE}"
} }
echo "BUILD_FN exited without error after removing echo "BUILD_FN exited without error after removing
@ -60,7 +83,14 @@ do
cp "${FILE_COPY}" "${FILE_}" \ cp "${FILE_COPY}" "${FILE_}" \
|| { echo "ERROR: restore copy failed" >&2; exit 1; } || { echo "ERROR: restore copy failed" >&2; exit 1; }
sed -i "s@${INCLUDE}@@" "${FILE_}" sed -i "s@${INCLUDE}@@" "${FILE_}"
( BUILD_FN ) &>/dev/null && echo "${FILE_}::${INCLUDE}" >> "${LOG_FILE}"
BUILD_FN
BUILD_FN_RET=$?
if [ "${BUILD_FN_RET}" = 0 ]; then
echo "${FILE_}::${INCLUDE}" >> "${LOG_FILE}"
elif [ -n "${PREFIX}" ]; then
echo "${PREFIX}${FILE_}::${INCLUDE}" >> "${LOG_FILE}"
fi
fi fi
done done
cp "${FILE_COPY}" "${FILE_}" cp "${FILE_COPY}" "${FILE_}"