Fix discovery of the .clang-format file (issue #2171)
This commit is contained in:
parent
24e20aec0f
commit
f6eb19f8d6
|
@ -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':
|
||||||
|
|
|
@ -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)
|
||||||
|
|
||||||
|
|
|
@ -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:
|
||||||
|
|
Loading…
Reference in New Issue