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 # can be found in the LICENSE file
from exec_util import exec_cmd from exec_util import exec_cmd
import os
import sys import sys
# Script directory.
script_dir = os.path.dirname(__file__)
root_dir = os.path.join(script_dir, os.pardir)
if sys.platform == 'win32': if sys.platform == 'win32':
# Force use of the clang-format version bundled with depot_tools. # Force use of the clang-format version bundled with depot_tools.
clang_format_exe = 'clang-format.bat' clang_format_exe = 'clang-format.bat'
else: else:
clang_format_exe = 'clang-format' clang_format_exe = 'clang-format'
def clang_format(file_contents): def clang_format(file_name, file_contents):
result = exec_cmd(clang_format_exe, ".", 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'] != '': if result['out'] != '':
output = result['out'] output = result['out']
if sys.platform == 'win32': if sys.platform == 'win32':

View File

@ -34,7 +34,7 @@ def update_file(filename):
msg(filename, "empty") msg(filename, "empty")
return; return;
newcontents = clang_format(oldcontents) newcontents = clang_format(filename, oldcontents)
if newcontents is None: if newcontents is None:
raise Exception("Failed to process %s" % filename) 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. # Apply clang-format for C/C++ files.
if os.path.splitext(file)[1][1:] in ('cc', 'cpp', 'h'): if os.path.splitext(file)[1][1:] in ('cc', 'cpp', 'h'):
result = clang_format(newcontents) result = clang_format(file, newcontents)
if result != None: if result != None:
newcontents = result newcontents = result
else: else: