Commit d6ddc1cb authored by digit@chromium.org's avatar digit@chromium.org

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
parent d79d4b8e
......@@ -2267,6 +2267,14 @@ def CMDformat(parser, args):
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
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment