| import fnmatch |
| import os |
| import os.path |
| from shutil import copyfile |
| |
| print('Searching for manifests...') |
| |
| matches = [] |
| for root, dirnames, filenames in os.walk('bazel-bin\\org\\brotli'): |
| for filename in fnmatch.filter(filenames, '*.runfiles_manifest'): |
| matches.append(os.path.join(root, filename)) |
| |
| for match in matches: |
| print('Scanning manifest ' + match) |
| runfiles = match[:-len('_manifest')] |
| with open(match) as manifest: |
| for entry in manifest: |
| entry = entry.strip() |
| if not entry.startswith("org_brotli_java"): |
| continue |
| if entry.startswith('org_brotli_java/external'): |
| continue |
| (alias, space, link) = entry.partition(' ') |
| if alias.endswith('.jar') or alias.endswith('.exe'): |
| continue |
| link = link.replace('/', '\\') |
| alias = alias.replace('/', '\\') |
| dst = os.path.join(runfiles, alias) |
| if not os.path.exists(dst): |
| print(link + ' -> ' + dst) |
| parent = os.path.dirname(dst) |
| if not os.path.exists(parent): |
| os.makedirs(parent) |
| copyfile(link, dst) |
| |
| print('Finished resolving symlinks') |