#!/bin/sh minVersion="14.0.0" for file in $(find $(echo "$PATH" | tr ':' ' ') -maxdepth 1 -type f -executable -name 'git-clang-format*'); do curName="$(basename "$file" | sed 's/^git-//')" curVersion="$("$curName" --version | cut -d ' ' -f 3)" if [ "$(printf '%s\n' "$curVersion" "$version" "$minVersion" | sort -V | tail -n 1)" = "$curVersion" ]; then name="$curName" version="$curVersion" fi done if [ -z "$name" ]; then echo "Could not find a suitable clang-format installation. Install clang-format that includes the git-clang-format script, with at least version $minVersion" exit 1 fi args='-q --extensions cpp,h --style file --staged -- :!src/FreeRTOS :!src/libs' changedFiles="$(git "$name" --diffstat $args)" git "$name" $args echo "$changedFiles" | head -n -1 | cut -d ' ' -f 2 | while read -r file; do git add -- "$file" done