From 795aebbee77bb74d8792df96dfe1aa79ec9548fc Mon Sep 17 00:00:00 2001 From: Garrett D'Amore Date: Mon, 10 Jul 2017 15:02:38 -0700 Subject: Give up on uncrustify; switch to clang-format. --- etc/format-check.sh | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100755 etc/format-check.sh (limited to 'etc/format-check.sh') diff --git a/etc/format-check.sh b/etc/format-check.sh new file mode 100755 index 00000000..ea9bd2f2 --- /dev/null +++ b/etc/format-check.sh @@ -0,0 +1,55 @@ +#!/bin/sh +# +# Copyright 2016 Garrett D'Amore +# +# This software is supplied under the terms of the MIT License, a +# copy of which should be located in the distribution where this +# file was obtained (LICENSE.txt). A copy of the license may also be +# found online at https://opensource.org/licenses/MIT. +# + +# +# This script is used to run uncrustify and report files that don't match. +# It looks for .c and .h files, located in ../src, and uses the config file +# uncrustify.cfg located in the same directory as this script. It only handles +# C language at this point. +# +mydir=`dirname $0` +srcdir=${mydir}/../src +failed= + +clang-format -version > /dev/null +if [ $? -ne 0 ]; then + echo "clang-format not found. Skipping checks." + exit 0 +fi + +mytmpdir=`mktemp -d` + +for file in `find ${srcdir} -name '*.[ch]' -print` +do + ext=${file##*.} + oldf=${file} + newf=${mytmpdir}/new.${ext} + clang-format -style=file ${oldf} > ${newf} + cmp -s ${oldf} ${newf} + if [ $? -ne 0 ] + then + echo "${file} style changes" + if [ -t 1 ]; then + colordiff -u $oldf $newf + else + diff -u $oldf $newf + fi + failed=1 + fi +done +rm -rf $mytmpdir +if [ -n "$failed" ] +then + echo "Format differences found!" 1>&2 + # Sadly, there are different versions of Uncrustify, and they don't + # seem to universally agree. So let's not trigger a build error on + # this -- but instead just emit it to standard output. + exit 0 +fi -- cgit v1.2.3-70-g09d2