Fix "git cl format" when newer clang-format version is installed.

Newer versions of clang-format-diff.py now require a -i flag to
explicitely apply edits, otherwise they just print a diff, which
make "git cl format" a no-op.

This patch fixes the issue by probing the script's help text to
see if the flag is needed. If it is, it is added automatically.

BUG=NONE
R=maruel@chromium.org

Review URL: https://codereview.chromium.org/44263004

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@231020 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/git_cl.py b/git_cl.py
index cb93095..ebe285b 100755
--- a/git_cl.py
+++ b/git_cl.py
@@ -2267,6 +2267,14 @@
     if not os.path.exists(cfd_path):
       DieWithError('Could not find clang-format-diff at %s.' % cfd_path)
     cmd = [sys.executable, cfd_path, '-p0', '-style', 'Chromium']
+
+    # Newer versions of clang-format-diff.py require an explicit -i flag
+    # to apply the edits to files, otherwise it just displays a diff.
+    # Probe the usage string to verify if this is needed.
+    help_text = RunCommand([sys.executable, cfd_path, '-h'])
+    if '[-i]' in help_text:
+      cmd.append('-i')
+
     RunCommand(cmd, stdin=diff_output, cwd=top_dir)
 
   return 0