xref: /isa-l_crypto/tools/format.sh (revision f36388d4b3c8a76e2ad93762aed12ef3b442b26f)
1dcb32c4bSMarcel Cornu#!/usr/bin/env bash
2dcb32c4bSMarcel Cornu
3dcb32c4bSMarcel Cornuverbose=0
4dcb32c4bSMarcel Cornuclang_format_min_version=18
5dcb32c4bSMarcel Cornu
6dcb32c4bSMarcel Cornufunction clang_format_version() {
7dcb32c4bSMarcel Cornu    version_str=$($clang_format --version)
8dcb32c4bSMarcel Cornu    regex="[0-9]+"
9dcb32c4bSMarcel Cornu    if [[ $version_str =~ $regex ]]; then
10dcb32c4bSMarcel Cornu        major_version="${BASH_REMATCH[0]}"
11dcb32c4bSMarcel Cornu        echo $major_version
12dcb32c4bSMarcel Cornu    fi
13dcb32c4bSMarcel Cornu}
14dcb32c4bSMarcel Cornu
15dcb32c4bSMarcel Cornu# set clang-format binary if not set externally
16dcb32c4bSMarcel Cornuif [[ -z $CLANGFORMAT ]]; then
17dcb32c4bSMarcel Cornu    clang_format="clang-format"
18dcb32c4bSMarcel Cornuelse
19dcb32c4bSMarcel Cornu    clang_format=$CLANGFORMAT
20dcb32c4bSMarcel Cornufi
21dcb32c4bSMarcel Cornu
22dcb32c4bSMarcel Cornuwhile [ -n "$*" ]; do
23dcb32c4bSMarcel Cornu    case "$1" in
24dcb32c4bSMarcel Cornu        -v )
25dcb32c4bSMarcel Cornu            verbose=1
26dcb32c4bSMarcel Cornu            shift
27dcb32c4bSMarcel Cornu            ;;
28dcb32c4bSMarcel Cornu        -h )
29dcb32c4bSMarcel Cornu            echo format.sh [-h -v]
30dcb32c4bSMarcel Cornu            exit 0
31dcb32c4bSMarcel Cornu            ;;
32dcb32c4bSMarcel Cornu    esac
33dcb32c4bSMarcel Cornudone
34dcb32c4bSMarcel Cornu
35dcb32c4bSMarcel Cornuif [ $(clang_format_version) -ge $clang_format_min_version ]; then
36dcb32c4bSMarcel Cornu    echo "Formatting files using clang-format v$(clang_format_version)..."
37dcb32c4bSMarcel Cornu    for f in `git ls-files '*.[c|h]'`; do
38dcb32c4bSMarcel Cornu        [ "$verbose" -gt 0 ] && echo "formatting $f"
39*f36388d4SMarcel Cornu        $clang_format -style=file -i "$f" &
40dcb32c4bSMarcel Cornu    done
41dcb32c4bSMarcel Cornuelse
42dcb32c4bSMarcel Cornu    echo "clang-format version ${clang_format_min_version}+ is required!"
43dcb32c4bSMarcel Cornufi
44*f36388d4SMarcel Cornu
45*f36388d4SMarcel Cornu# wait for background processes to finish
46*f36388d4SMarcel Cornuwait
47