80 lines
2.0 KiB
Bash
Executable File
80 lines
2.0 KiB
Bash
Executable File
#!/bin/bash
|
|
# The version check in this script is used to avoid commit battles
|
|
# between different developers that use different astyle versions as
|
|
# different versions might have different output (this has happened in
|
|
# the past).
|
|
|
|
# If project management wishes to take a newer astyle version into use
|
|
# just change this string to match the start of astyle version string.
|
|
ASTYLE_VERSION="3.0.1"
|
|
ASTYLE="${ASTYLE-astyle}"
|
|
|
|
DETECTED_VERSION=$("$ASTYLE" --version 2>&1 | awk '{ print $NF; }')
|
|
if [ "$DETECTED_VERSION" != "${ASTYLE_VERSION}" ]; then
|
|
echo "You should use version: ${ASTYLE_VERSION}"
|
|
echo "Detected version: ${DETECTED_VERSION}"
|
|
exit 1
|
|
fi
|
|
|
|
RCFILE=.astylerc
|
|
|
|
#
|
|
# Functions to format C/C++ source code
|
|
#
|
|
function formatCplusplus {
|
|
"$ASTYLE" --options=$RCFILE "$1"
|
|
}
|
|
function formatCplusplusRecursive {
|
|
RCFILE=.astylerc
|
|
"$ASTYLE" --options=$RCFILE --recursive "$1"
|
|
}
|
|
|
|
#
|
|
# Function to format XML files
|
|
#
|
|
function formatXML {
|
|
xmllint --format -o "$1_" "$1"
|
|
if cmp -s "$1_" "$1"; then
|
|
rm -f "$1_"
|
|
echo Unchanged $1
|
|
else
|
|
mv -f "$1_" "$1"
|
|
echo Formatted $1
|
|
fi
|
|
}
|
|
|
|
formatCplusplus "cli/*.cpp"
|
|
formatCplusplus "cli/*.h"
|
|
formatCplusplus "democlient/*.cpp"
|
|
formatCplusplus "gui/*.cpp"
|
|
formatCplusplus "gui/*.h"
|
|
formatCplusplusRecursive "gui/test/*.cpp"
|
|
formatCplusplusRecursive "gui/test/*.h"
|
|
formatCplusplus "lib/*.cpp"
|
|
formatCplusplus "lib/*.h"
|
|
formatCplusplus "oss-fuzz/*.cpp"
|
|
formatCplusplus "oss-fuzz/*.h"
|
|
formatCplusplus "test/*.cpp"
|
|
formatCplusplus "test/cfg/*.c"
|
|
formatCplusplus "test/cfg/*.cpp"
|
|
formatCplusplus "test/*.h"
|
|
formatCplusplusRecursive "tools/*.cpp"
|
|
formatCplusplusRecursive "tools/*.h"
|
|
formatCplusplusRecursive "samples/*.c"
|
|
formatCplusplusRecursive "samples/*.cpp"
|
|
|
|
# format config files
|
|
# TODO: use other tool than xmllint? use tabs instead of spaces?
|
|
for CFGFILE in cfg/*.cfg
|
|
do
|
|
formatXML "$CFGFILE"
|
|
done
|
|
for PLATFORMFILE in platforms/*.xml
|
|
do
|
|
formatXML "$PLATFORMFILE"
|
|
done
|
|
|
|
formatXML man/cppcheck.1.xml
|
|
formatXML cppcheck-errors.rng
|
|
formatXML rules/*.xml
|