Use git-clang-format as Arcanist linter
authorSiddhartha Bagaria <sbagaria@grailbio.com>
Fri, 3 Apr 2020 04:34:51 +0000 (04:34 +0000)
committerMehdi Amini <joker.eph@gmail.com>
Fri, 3 Apr 2020 04:53:33 +0000 (04:53 +0000)
D49116 was using clang-format-diff because at the time of its writing,
it needed to handle the subversion repo as well.

Differential Revision: https://reviews.llvm.org/D77363

utils/arcanist/clang-format.sh

index 7ba7068..4fa2dd9 100755 (executable)
@@ -10,11 +10,11 @@ set -euo pipefail
 
 # To skip running all linters when creating/updating a diff, use `arc diff --nolint`.
 
 
 # To skip running all linters when creating/updating a diff, use `arc diff --nolint`.
 
-if ! hash clang-format-diff >/dev/null; then
+if ! hash git-clang-format >/dev/null; then
   # advice severity level is completely non-disruptive.
   # switch to warning or error if you want to prompt the user.
   echo "advice"
   # advice severity level is completely non-disruptive.
   # switch to warning or error if you want to prompt the user.
   echo "advice"
-  echo "clang-format-diff not found in user's PATH; not linting file."
+  echo "git-clang-format not found in user's PATH; not linting file."
   echo "===="
   exit 0
 fi
   echo "===="
   exit 0
 fi
@@ -37,13 +37,13 @@ trap 'cleanup' INT HUP QUIT TERM EXIT
 
 # Arcanist can filter out lint messages for unchanged lines, but for that, we
 # need to generate line by line lint messages. Instead, we generate one lint
 
 # Arcanist can filter out lint messages for unchanged lines, but for that, we
 # need to generate line by line lint messages. Instead, we generate one lint
-# message on line 1, char 1 with file content edited using clang-format-diff.
+# message on line 1, char 1 with file content edited using git-clang-format.
 if git rev-parse --git-dir >/dev/null; then
   arc_base_commit=$(arc which --show-base)
   # An alternative is to use git-clang-format.
 if git rev-parse --git-dir >/dev/null; then
   arc_base_commit=$(arc which --show-base)
   # An alternative is to use git-clang-format.
-  git diff -U0 --no-color "${arc_base_commit}"| clang-format-diff -style LLVM -i -p1
+  >&2 git-clang-format --quiet --force --style LLVM "${arc_base_commit}"
 else
 else
-  svn diff --diff-cmd=diff -x -U0 "${src_file}" | clang-format-diff -style LLVM -i
+  >&2 echo "repo is expected to be a git directory"
 fi
 
 cp -p "${src_file}" "${formatted_file}"
 fi
 
 cp -p "${src_file}" "${formatted_file}"