summaryrefslogtreecommitdiff
path: root/nss/automation/taskcluster/scripts/run_clang_format.sh
diff options
context:
space:
mode:
Diffstat (limited to 'nss/automation/taskcluster/scripts/run_clang_format.sh')
-rwxr-xr-xnss/automation/taskcluster/scripts/run_clang_format.sh77
1 files changed, 39 insertions, 38 deletions
diff --git a/nss/automation/taskcluster/scripts/run_clang_format.sh b/nss/automation/taskcluster/scripts/run_clang_format.sh
index c4b6029..05e6317 100755
--- a/nss/automation/taskcluster/scripts/run_clang_format.sh
+++ b/nss/automation/taskcluster/scripts/run_clang_format.sh
@@ -1,56 +1,57 @@
#!/usr/bin/env bash
-set -v -e -x
+source $(dirname "$0")/tools.sh
-if [ $(id -u) -eq 0 ]; then
- # Drop privileges by re-running this script.
- exec su worker $0 "$@"
-fi
+set +x
# 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.
-# Includes a default set of directories.
+# Includes a default set of directories NOT to clang-format on.
+blacklist=(
+ "./automation" \
+ "./coreconf" \
+ "./doc" \
+ "./pkg" \
+ "./tests" \
+ "./lib/libpkix" \
+ "./lib/zlib" \
+ "./lib/sqlite" \
+ "./gtests/google_test" \
+ "./.hg" \
+)
+
+top="$PWD/$(dirname $0)/../../.."
+cd "$top"
if [ $# -gt 0 ]; then
dirs=("$@")
else
- top=$(dirname $0)/../../..
- dirs=( \
- "$top/cmd" \
- "$top/fuzz" \
- "$top/lib/base" \
- "$top/lib/certdb" \
- "$top/lib/certhigh" \
- "$top/lib/ckfw" \
- "$top/lib/crmf" \
- "$top/lib/cryptohi" \
- "$top/lib/dbm" \
- "$top/lib/dev" \
- "$top/lib/freebl" \
- "$top/lib/jar" \
- "$top/lib/nss" \
- "$top/lib/pk11wrap" \
- "$top/lib/pkcs7" \
- "$top/lib/pkcs12" \
- "$top/lib/pki" \
- "$top/lib/smime" \
- "$top/lib/softoken" \
- "$top/lib/ssl" \
- "$top/lib/sysinit" \
- "$top/lib/util" \
- "$top/gtests/common" \
- "$top/gtests/der_gtest" \
- "$top/gtests/freebl_gtest" \
- "$top/gtests/pk11_gtest" \
- "$top/gtests/ssl_gtest" \
- "$top/gtests/util_gtest" \
- )
+ dirs=($(find . ! -path . \( ! -regex '.*/' \) -maxdepth 2 -mindepth 1 -type d))
fi
+format_folder()
+{
+ for black in "${blacklist[@]}"; do
+ if [[ "$1" == "$black"* ]]; then
+ echo "skip $1"
+ return 1
+ fi
+ done
+ return 0
+}
+
for dir in "${dirs[@]}"; do
- find "$dir" -type f \( -name '*.[ch]' -o -name '*.cc' \) -exec clang-format -i {} \+
+ if format_folder "$dir" ; then
+ c="${dir//[^\/]}"
+ echo "formatting $dir ..."
+ depth=""
+ if [ "${#c}" == "1" ]; then
+ depth="-maxdepth 1"
+ fi
+ find "$dir" $depth -type f \( -name '*.[ch]' -o -name '*.cc' \) -exec clang-format -i {} \+
+ fi
done
TMPFILE=$(mktemp /tmp/$(basename $0).XXXXXX)