| Index: tools/protoc_wrapper/protoc_wrapper.py
|
| diff --git a/tools/protoc_wrapper/protoc_wrapper.py b/tools/protoc_wrapper/protoc_wrapper.py
|
| index 69a7aec62b372e5ce52e658f5f2b65719fe3710b..e6ddf95184adfc089ec8f667da46a99daba35a14 100755
|
| --- a/tools/protoc_wrapper/protoc_wrapper.py
|
| +++ b/tools/protoc_wrapper/protoc_wrapper.py
|
| @@ -10,6 +10,7 @@ A simple wrapper for protoc.
|
| - Handles building with system protobuf as an option.
|
| """
|
|
|
| +import fnmatch
|
| import optparse
|
| import os.path
|
| import shutil
|
| @@ -41,6 +42,26 @@ def ModifyHeader(header_file, extra_header):
|
| f.write(''.join(header_contents))
|
| return 0
|
|
|
| +def ScanForBadFiles(scan_root):
|
| + """Scan for bad file names, see http://crbug.com/386125 for details.
|
| + Returns True if any filenames are bad. Outputs errors to stderr.
|
| +
|
| + |scan_root| is the path to the directory to be recursively scanned.
|
| + """
|
| + badname = False
|
| + real_scan_root = os.path.realpath(scan_root)
|
| + for dirpath, dirnames, filenames in os.walk(real_scan_root):
|
| + matches = fnmatch.filter(filenames, '*-*.proto')
|
| + if len(matches) > 0:
|
| + if not badname:
|
| + badname = True
|
| + sys.stderr.write('proto files must not have hyphens in their names ('
|
| + 'see http://crbug.com/386125 for more information):\n')
|
| + for filename in matches:
|
| + sys.stderr.write(' ' + os.path.join(real_scan_root,
|
| + dirpath, filename) + '\n')
|
| + return badname
|
| +
|
|
|
| def RewriteProtoFilesForSystemProtobuf(path):
|
| wrapper_dir = tempfile.mkdtemp()
|
| @@ -84,6 +105,9 @@ def main(argv):
|
| if len(args) < 2:
|
| return 1
|
|
|
| + if ScanForBadFiles(options.proto_in_dir):
|
| + return 1
|
| +
|
| proto_path = options.proto_in_dir
|
| if options.use_system_protobuf == 1:
|
| proto_path = RewriteProtoFilesForSystemProtobuf(proto_path)
|
|
|