Andrew Jeffery | f34db31 | 2018-03-09 15:27:03 +1030 | [diff] [blame] | 1 | #!/bin/sh |
| 2 | |
| 3 | set -euo |
| 4 | |
| 5 | set -x |
| 6 | |
Andrew Jeffery | b5e7809 | 2021-05-17 11:53:13 +0930 | [diff] [blame^] | 7 | if [ $# -ge 1 ] |
| 8 | then |
| 9 | cd "$1" |
| 10 | fi |
| 11 | |
Andrew Jeffery | f34db31 | 2018-03-09 15:27:03 +1030 | [diff] [blame] | 12 | [ -f .clang-format ] && rm .clang-format |
| 13 | |
William A. Kennington III | b7c49b2 | 2018-10-11 13:54:58 -0700 | [diff] [blame] | 14 | # Use the provided clang-format, only define a version |
| 15 | # if we don't have one provided already |
Andrew Jeffery | 1230660 | 2021-05-17 12:24:08 +0930 | [diff] [blame] | 16 | export CLANG_FORMAT="${CLANG_FORMAT:-clang-format-11}" |
Andrew Jeffery | f34db31 | 2018-03-09 15:27:03 +1030 | [diff] [blame] | 17 | |
| 18 | # phosphor-mboxd is a fork of mboxbridge, the reference mbox daemon |
| 19 | # implementation. mboxbridge is C written with the style of the Linux kernel. |
| 20 | # |
| 21 | # phosphor-mboxd extended the reference in C++, and used the OpenBMC C++ style. |
| 22 | # |
| 23 | # To remain compliant with the C++ style guide *and* preserve source |
| 24 | # compatibility with the upstream reference implementation, use two separate |
| 25 | # styles. |
| 26 | # |
| 27 | # Further, clang-format supports describing styles for multiple languages in |
| 28 | # the one .clang-format file, but *doesn't* make a distinction between C and |
| 29 | # C++. So we need two files. It gets worse: the -style parameter doesn't take |
| 30 | # the path to a configuration file as an argument, you instead specify the |
| 31 | # literal 'file' and it goes looking for a .clang-format or _clang-format file. |
| 32 | # So now we need to symlink different files in place before calling |
| 33 | # ${CLANG_FORMAT}. Everything is terrible. |
| 34 | # |
| 35 | # ln -sf .clang-format-c .clang-format |
| 36 | # git ls-files | grep '\.[ch]$' | xargs "${CLANG_FORMAT}" -i -style=file |
| 37 | |
| 38 | ln -sf .clang-format-c++ .clang-format |
| 39 | git ls-files | grep '\.[ch]pp$' | xargs "${CLANG_FORMAT}" -i -style=file |
| 40 | |
| 41 | rm .clang-format |