Chromium Code Reviews| 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..7827c27e21bca714f6fc462c837bc8a9ca08b808 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 crbug/386125 for details. Returns 1 if any |
|
Paweł Hajdan Jr.
2014/06/20 18:38:22
nit: Please make the link clickable, http://crbug.
Andrew Hayden (chromium.org)
2014/06/25 08:40:24
Done.
|
| + 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 issue 386125 for more information):\n') |
|
Paweł Hajdan Jr.
2014/06/20 18:38:22
Please make this a link, otherwise people can easi
Andrew Hayden (chromium.org)
2014/06/25 08:40:24
Done.
|
| + for filename in matches: |
| + sys.stderr.write(' ' + os.path.join(real_scan_root, |
| + dirpath, filename) + '\n') |
| + return 1 if badname else 0 |
|
Paweł Hajdan Jr.
2014/06/20 18:38:22
This is Python, why not return bool? Also update t
Andrew Hayden (chromium.org)
2014/06/25 08:40:25
Done.
|
| + |
| 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) != 0: |
| + return 1 |
| + |
| proto_path = options.proto_in_dir |
| if options.use_system_protobuf == 1: |
| proto_path = RewriteProtoFilesForSystemProtobuf(proto_path) |