summaryrefslogtreecommitdiff
path: root/automation/clang-format
diff options
context:
space:
mode:
authorMartin Thomson <martin.thomson@gmail.com>2017-07-27 12:04:59 +1000
committerMartin Thomson <martin.thomson@gmail.com>2017-07-27 12:04:59 +1000
commitacb5c05f7990dfb6c3ae5f7b5abab7b544f40ac5 (patch)
tree340853153a90b3e826e748176ba0ee55b77b46ef /automation/clang-format
parent09b4d491cc6bd42e843931b6c4bfbf720b8485ad (diff)
downloadnss-hg-acb5c05f7990dfb6c3ae5f7b5abab7b544f40ac5.tar.gz
Bug 1384791 - Fix clang-format script, r=franziskus
Diffstat (limited to 'automation/clang-format')
-rwxr-xr-xautomation/clang-format/run_clang_format.sh21
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