Fix discovery of the .clang-format file (issue #2171)

This commit is contained in:
Marshall Greenblatt 2017-05-19 11:00:44 +02:00
parent 24e20aec0f
commit f6eb19f8d6
3 changed files with 14 additions and 4 deletions

View File

@ -3,16 +3,26 @@
# can be found in the LICENSE file
from exec_util import exec_cmd
import os
import sys
# Script directory.
script_dir = os.path.dirname(__file__)
root_dir = os.path.join(script_dir, os.pardir)
if sys.platform == 'win32':
# Force use of the clang-format version bundled with depot_tools.
clang_format_exe = 'clang-format.bat'
else:
clang_format_exe = 'clang-format'
def clang_format(file_contents):
result = exec_cmd(clang_format_exe, ".", file_contents)
def clang_format(file_name, file_contents):
# -assume-filename is necessary to find the .clang-format file and determine
# the language when specifying contents via stdin.
result = exec_cmd("%s -assume-filename=%s" % (clang_format_exe, file_name), \
root_dir, file_contents)
if result['err'] != '':
print "clang-format error: %s" % result['err']
if result['out'] != '':
output = result['out']
if sys.platform == 'win32':

View File

@ -34,7 +34,7 @@ def update_file(filename):
msg(filename, "empty")
return;
newcontents = clang_format(oldcontents)
newcontents = clang_format(filename, oldcontents)
if newcontents is None:
raise Exception("Failed to process %s" % filename)

View File

@ -124,7 +124,7 @@ def update_file(file, newcontents):
# Apply clang-format for C/C++ files.
if os.path.splitext(file)[1][1:] in ('cc', 'cpp', 'h'):
result = clang_format(newcontents)
result = clang_format(file, newcontents)
if result != None:
newcontents = result
else: