blob: 49a87c46e1cd5b010903a389f39832d32b0fbc86 [file] [log] [blame]
#!/usr/bin/env python
# Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file
# for details. All rights reserved. Use of this source code is governed by a
# BSD-style license that can be found in the LICENSE file.
'''Tool for removing dart:html and related imports from a library.
Copy SOURCE to TARGET, removing any lines that import dart:html.
Usage:
python tools/remove_html_imports.py SOURCE TARGET
'''
import os
import re
import shutil
import sys
HTML_IMPORT = re.compile(r'''^import ["']dart:(html|html_common|indexed_db'''
r'''|js|svg|web_(audio|gl|sql))["'];$''',
flags=re.MULTILINE)
def main(argv):
source = argv[1]
target = argv[2]
shutil.rmtree(target)
shutil.copytree(source, target, ignore=shutil.ignore_patterns('.svn'))
for root, subFolders, files in os.walk(target):
for path in files:
if not path.endswith('.dart'): next
with open(os.path.join(root, path), 'r+') as f:
contents = f.read()
f.seek(0)
f.truncate()
f.write(HTML_IMPORT.sub(r'// import "dart:\1";', contents))
if __name__ == '__main__':
sys.exit(main(sys.argv))