mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
The `__future__` we relied on is now, where the 3 specific things are all included [since Python 3.0](https://docs.python.org/3/library/__future__.html): * absolute_import * print_function * unicode_literals * division These import statements are no-ops and are no longer necessary.
49 lines
1.2 KiB
Python
49 lines
1.2 KiB
Python
#!/usr/bin/env python3
|
|
"""
|
|
Renames files or directories with "module-triple-here" in their names to use
|
|
the indicated module triples instead.
|
|
"""
|
|
|
|
import os
|
|
import platform
|
|
import shutil
|
|
import sys
|
|
|
|
if len(sys.argv) < 3:
|
|
print('Too few args to ' + sys.argv[0])
|
|
print('Usage: rewrite-module-triples.py <root-dir> <module-triple>...')
|
|
sys.exit(1)
|
|
|
|
root_dir = sys.argv[1]
|
|
if platform.system() == 'Windows':
|
|
root_dir = "\\\\?\\" + os.path.abspath(root_dir)
|
|
|
|
triples = sys.argv[2:]
|
|
|
|
|
|
def rewritten_names(name):
|
|
if 'module-triple-here' not in name:
|
|
return []
|
|
|
|
return [name.replace('module-triple-here', triple) for triple in triples]
|
|
|
|
|
|
def rewrite(parent, names, copy_fn, rm_fn):
|
|
for name in names:
|
|
new_names = rewritten_names(name)
|
|
if not new_names:
|
|
continue
|
|
|
|
path = os.path.join(parent, name)
|
|
|
|
for new_name in new_names:
|
|
new_path = os.path.join(parent, new_name)
|
|
copy_fn(path, new_path)
|
|
|
|
rm_fn(path)
|
|
|
|
|
|
for parent, dirs, files in os.walk(root_dir, topdown=False):
|
|
rewrite(parent, dirs, shutil.copytree, shutil.rmtree)
|
|
rewrite(parent, files, shutil.copyfile, os.remove)
|