diff --git a/dist/tools/uncrustify/blacklist.txt b/dist/tools/uncrustify/blacklist.txt new file mode 100644 index 0000000000..e69de29bb2 diff --git a/dist/tools/uncrustify/uncrustify.sh b/dist/tools/uncrustify/uncrustify.sh new file mode 100755 index 0000000000..d1efad07b3 --- /dev/null +++ b/dist/tools/uncrustify/uncrustify.sh @@ -0,0 +1,42 @@ +#!/bin/bash +RIOTBASE=$(git rev-parse --show-toplevel) +CURDIR=$(cd "$(dirname "$0")" && pwd) +UNCRUSTIFY_CFG="$RIOTBASE"/uncrustify-riot.cfg + +WHITELIST=$CURDIR/whitelist.txt +BLACKLIST=$CURDIR/blacklist.txt + +. "$RIOTBASE"/dist/tools/ci/changed_files.sh + +# only consider whitelisted stuff, then filter out blacklist +# note: this also applies changed_files' default filter +FILES=$(changed_files | grep -xf "$WHITELIST" | grep -xvf "$BLACKLIST") + +check () { + for F in $FILES + do + OUT="$(uncrustify -c "$UNCRUSTIFY_CFG" -f "$RIOTBASE/$F" --check 2> /dev/null)" + if [ "$OUT" ] ; then + echo "Please run 'dist/tools/uncrustify/uncrustify.sh'" + exit 1 + fi + done + echo "All files are uncrustified!" +} + +exec_uncrustify () { + if [ "$(git diff HEAD)" ] ; then + echo "Please commit all changes before running uncrustify.sh" + exit 1 + fi + for F in $FILES + do + uncrustify -c "$UNCRUSTIFY_CFG" --no-backup "$RIOTBASE/$F" + done +} + +if [ "$1" == "--check" ] ; then + check +else + exec_uncrustify +fi diff --git a/dist/tools/uncrustify/whitelist.txt b/dist/tools/uncrustify/whitelist.txt new file mode 100644 index 0000000000..e69de29bb2