#!/usr/bin/env bash COMPILER_OPTS="-std=gnu89 -Iinclude -Isrc -D_LANGUAGE_C" shopt -s globstar FILES="src/**/*.c include/*.h" if (( $# > 0 )); then # only process .c and .h files FILES=$(echo "$@" | sed 's/ /\n/g' | grep '\.[ch]$') fi if [[ -z $FILES ]]; then echo "no .c or .h files specified" exit fi # format astyle ${FILES} \ --formatted --suffix=none \ --lineend=linux \ --convert-tabs \ --max-code-length=120 \ --min-conditional-indent=0 \ --style=attach \ --align-pointer=type --align-reference=name \ --indent-switches \ --pad-oper --pad-comma --pad-header --unpad-paren \ --attach-return-type \ --keep-one-line-blocks \ --keep-one-line-statements # add newline at eof find ${FILES} -exec sed -i -e '$a\' {} \; # lint C_FILES=$(echo "$FILES" | grep '\.c$') if [[ ! -z $C_FILES ]]; then clang-tidy -p . ${C_FILES} -- ${COMPILER_OPTS} fi