Index: tools/list_dart_files.py |
diff --git a/tools/list_dart_files.py b/tools/list_dart_files.py |
index 60d2295652e1ea38e99094624bfd21cf3266bcfc..7a9ee8ab6c00564ead9a672d99c22f7dba48f17c 100755 |
--- a/tools/list_dart_files.py |
+++ b/tools/list_dart_files.py |
@@ -5,8 +5,12 @@ |
"""Tool for listing Dart source files. |
+If the first argument is 'relative', the script produces paths relative to the |
+current working directory. If the first argument is 'absolute', the script |
+produces absolute paths. |
+ |
Usage: |
- python tools/list_dart_files.py <directory> <root directory pattern> |
+ python tools/list_dart_files.py {absolute, relative} <directory> <pattern> |
""" |
import os |
@@ -15,11 +19,16 @@ import sys |
def main(argv): |
- directory = argv[1] |
+ mode = argv[1] |
+ if mode not in ['absolute', 'relative']: |
+ raise Exception("First argument must be 'absolute' or 'relative'") |
+ directory = argv[2] |
+ if mode in 'absolute' and not os.path.isabs(directory): |
+ directory = os.path.realpath(directory) |
pattern = None |
- if len(argv) > 2: |
- pattern = re.compile(argv[2]) |
+ if len(argv) > 3: |
+ pattern = re.compile(argv[3]) |
for root, directories, files in os.walk(directory): |
# We only care about actual source files, not generated code or tests. |
@@ -34,7 +43,10 @@ def main(argv): |
for filename in files: |
if filename.endswith('.dart') and not filename.endswith('_test.dart'): |
- fullname = os.path.relpath(os.path.join(root, filename)) |
+ if mode in 'absolute': |
+ fullname = os.path.join(directory, root, filename) |
+ else: |
+ fullname = os.path.relpath(os.path.join(root, filename)) |
fullname = fullname.replace(os.sep, '/') |
print fullname |