Fix for x86_64 build fail
[platform/upstream/connectedhomeip.git] / scripts / helpers / clang-format.sh
1 #!/usr/bin/env bash
2
3 #
4 # Copyright (c) 2020 Project CHIP Authors
5 #
6 # Licensed under the Apache License, Version 2.0 (the "License");
7 # you may not use this file except in compliance with the License.
8 # You may obtain a copy of the License at
9 #
10 #     http://www.apache.org/licenses/LICENSE-2.0
11 #
12 # Unless required by applicable law or agreed to in writing, software
13 # distributed under the License is distributed on an "AS IS" BASIS,
14 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 # See the License for the specific language governing permissions and
16 # limitations under the License.
17 #
18
19 CLANG_FORMAT_VERSION="clang-format version 9.0"
20
21 die() {
22     echo " *** ERROR: $*"
23     exit 1
24 }
25
26 if command -v clang-format-9 >/dev/null; then
27     alias clang-format=clang-format-9
28 elif command -v clang-format >/dev/null; then
29     case "$(clang-format --version)" in
30         "$CLANG_FORMAT_VERSION"*) ;;
31
32         *)
33             die "$(clang-format --version); \"$CLANG_FORMAT_VERSION\" required"
34             ;;
35     esac
36 else
37     die "$CLANG_FORMAT_VERSION required"
38 fi
39
40 clang-format "$@" || die "format failed"
41
42 # ensure EOF newline
43 REPLACE=no
44 for arg; do
45     case $arg in
46         -i)
47             REPLACE=yes
48             ;;
49     esac
50 done
51
52 file=$arg
53
54 [[ $REPLACE != yes ]] || {
55     [[ -z $(tail -c1 "$file") ]] || echo >>"$file"
56 }
57
58 exit 0