summaryrefslogtreecommitdiff
path: root/libcxx/utils/generate_ignore_format.sh
blob: a2dd20310e17686e30fdc8d26f61c69910be507a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#!/bin/bash

# Generate a list of headers that aren't formatted yet

if [ -z "${CLANG_FORMAT}" ]; then
  CLANG_FORMAT=clang-format
fi

rm libcxx/utils/data/ignore_format.txt
# This uses the same matches as the check-format CI step.
#
# Since it's hard to match empty extensions the following
# method is used, remove all files with an extension, then
# add the list of extensions that should be formatted.
for file in $(find libcxx/{benchmarks,include,src} -type f -not -name '*.*' -or \( \
	 -name "*.h" -or -name "*.hpp" -or \
	 -name "*.c" -or -name "*.cpp" -or \
	 -name "*.inc" -or -name "*.ipp" \
	 \) ); do

  ${CLANG_FORMAT} --Werror --dry-run ${file} >& /dev/null
  if [ $? != 0 ]; then
    echo ${file} >> libcxx/utils/data/ignore_format.txt
  fi
done

# Force sorting not to depend on the system's locale.
LC_ALL=C sort libcxx/utils/data/ignore_format.txt -d -o libcxx/utils/data/ignore_format.txt