diff options
author | Martin Thomson <martin.thomson@gmail.com> | 2017-07-27 12:04:59 +1000 |
---|---|---|
committer | Martin Thomson <martin.thomson@gmail.com> | 2017-07-27 12:04:59 +1000 |
commit | acb5c05f7990dfb6c3ae5f7b5abab7b544f40ac5 (patch) | |
tree | 340853153a90b3e826e748176ba0ee55b77b46ef /automation/clang-format | |
parent | 09b4d491cc6bd42e843931b6c4bfbf720b8485ad (diff) | |
download | nss-hg-acb5c05f7990dfb6c3ae5f7b5abab7b544f40ac5.tar.gz |
Bug 1384791 - Fix clang-format script, r=franziskus
Diffstat (limited to 'automation/clang-format')
-rwxr-xr-x | automation/clang-format/run_clang_format.sh | 21 |
1 files changed, 11 insertions, 10 deletions
diff --git a/automation/clang-format/run_clang_format.sh b/automation/clang-format/run_clang_format.sh index 2ba5ebeb1..378b00ff0 100755 --- a/automation/clang-format/run_clang_format.sh +++ b/automation/clang-format/run_clang_format.sh @@ -6,6 +6,8 @@ if [[ $(id -u) -eq 0 ]]; then exec su worker -c "$0 $*" fi +set -e + # Apply clang-format on the provided folder and verify that this doesn't change any file. # If any file differs after formatting, the script eventually exits with 1. # Any differences between formatted and unformatted files is printed to stdout to give a hint what's wrong. @@ -21,17 +23,16 @@ blacklist=( "./lib/zlib" \ "./lib/sqlite" \ "./gtests/google_test" \ - "./.hg" \ "./out" \ ) -top="$(dirname $0)/../.." -cd "$top" +top=$(cd "$(dirname $0)/../.."; pwd -P) if [ $# -gt 0 ]; then dirs=("$@") else - dirs=($(find . -maxdepth 2 -mindepth 1 -type d ! -path . \( ! -regex '.*/' \))) + cd "$top" + dirs=($(find . -maxdepth 2 -mindepth 1 -type d ! -path '*/.*' -print)) fi format_folder() @@ -46,20 +47,20 @@ format_folder() } for dir in "${dirs[@]}"; do - if format_folder "$dir" ; then + if format_folder "$dir"; then c="${dir//[^\/]}" echo "formatting $dir ..." - depth="" + depth=() if [ "${#c}" == "1" ]; then - depth="-maxdepth 1" + depth+=(-maxdepth 1) fi - find "$dir" $depth -type f \( -name '*.[ch]' -o -name '*.cc' \) -exec clang-format -i {} \+ + find "$dir" "${depth[@]}" -type f \( -name '*.[ch]' -o -name '*.cc' \) -exec clang-format -i {} \+ fi done TMPFILE=$(mktemp /tmp/$(basename $0).XXXXXX) -trap 'rm $TMPFILE' exit -if (cd $(dirname $0); hg root >/dev/null 2>&1); then +trap 'rm -f $TMPFILE' exit +if [[ -d "$top/.hg" ]]; then hg diff --git "$top" | tee $TMPFILE else git -C "$top" diff | tee $TMPFILE |