diff options
Diffstat (limited to 'security/nss/automation/clang-format/run_clang_format.sh')
-rw-r--r-- | security/nss/automation/clang-format/run_clang_format.sh | 21 |
1 files changed, 10 insertions, 11 deletions
diff --git a/security/nss/automation/clang-format/run_clang_format.sh b/security/nss/automation/clang-format/run_clang_format.sh index 378b00ff0..2ba5ebeb1 100644 --- a/security/nss/automation/clang-format/run_clang_format.sh +++ b/security/nss/automation/clang-format/run_clang_format.sh @@ -6,8 +6,6 @@ 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. @@ -23,16 +21,17 @@ blacklist=( "./lib/zlib" \ "./lib/sqlite" \ "./gtests/google_test" \ + "./.hg" \ "./out" \ ) -top=$(cd "$(dirname $0)/../.."; pwd -P) +top="$(dirname $0)/../.." +cd "$top" if [ $# -gt 0 ]; then dirs=("$@") else - cd "$top" - dirs=($(find . -maxdepth 2 -mindepth 1 -type d ! -path '*/.*' -print)) + dirs=($(find . -maxdepth 2 -mindepth 1 -type d ! -path . \( ! -regex '.*/' \))) fi format_folder() @@ -47,20 +46,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 -f $TMPFILE' exit -if [[ -d "$top/.hg" ]]; then +trap 'rm $TMPFILE' exit +if (cd $(dirname $0); hg root >/dev/null 2>&1); then hg diff --git "$top" | tee $TMPFILE else git -C "$top" diff | tee $TMPFILE |