| OLD | NEW |
| (Empty) |
| 1 #!/usr/local/evn python | |
| 2 # Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file | |
| 3 # for details. All rights reserved. Use of this source code is governed by a | |
| 4 # BSD-style license that can be found in the LICENSE file. | |
| 5 | |
| 6 # TODO(jimhug): THIS IS CURRENTLY BROKEN - NEEDS FIX BEFORE EXTENSIONS WORK! | |
| 7 | |
| 8 # A script that copies dart/frog/lib under dart/frog/tip/lib/. This script | |
| 9 # internally uses copy_dart to resolve relative paths used in the libraries and | |
| 10 # merge source files together. | |
| 11 | |
| 12 # Note: The current setup assumes that all libraries used by frog (except some | |
| 13 # sources) are within the frog/lib. If frog/lib contains a #import outside that | |
| 14 # directory, we need to update this script to contain a deeper hierarchy of | |
| 15 # directories. | |
| 16 | |
| 17 import os | |
| 18 import fileinput | |
| 19 import re | |
| 20 import subprocess | |
| 21 import sys | |
| 22 | |
| 23 TIP_PATH = os.path.dirname(os.path.abspath(__file__)) | |
| 24 FROG_PATH = os.path.dirname(TIP_PATH) | |
| 25 LIB_PATH = os.path.join(FROG_PATH, 'lib') | |
| 26 | |
| 27 re_library = re.compile(r'^#library\([\'"]([^\'"]*)[\'"]\);$') | |
| 28 | |
| 29 def find_libraries(path): | |
| 30 """ finds .dart files containing the #library directive. """ | |
| 31 libs = [] | |
| 32 for root, dirs, files in os.walk(path): | |
| 33 for fname in files: | |
| 34 if fname.endswith('.dart') and not root.endswith('lib/node'): | |
| 35 relpath = os.path.relpath(os.path.join(root, fname)) | |
| 36 for line in fileinput.input(relpath): | |
| 37 if re_library.match(line): | |
| 38 libs.append(relpath) | |
| 39 break | |
| 40 fileinput.close() | |
| 41 return libs | |
| 42 | |
| 43 def main(): | |
| 44 os.chdir(LIB_PATH) | |
| 45 libs = find_libraries(LIB_PATH) | |
| 46 return subprocess.call([sys.executable, | |
| 47 '../../client/tools/copy_dart.py', os.path.join(TIP_PATH, 'lib')] + libs) | |
| 48 | |
| 49 if __name__ == '__main__': | |
| 50 sys.exit(main()) | |
| OLD | NEW |