diff options
author | Tristan Maat <tristan.maat@codethink.co.uk> | 2018-07-16 18:01:33 +0100 |
---|---|---|
committer | Tristan Van Berkom <tristan.vanberkom@codethink.co.uk> | 2018-07-18 14:11:03 +0900 |
commit | fc79ad2c86080583ecb1078bb8841d54b4e0d0bb (patch) | |
tree | 21d8d2d1650924ce7cfb955fd5f931174d126633 /buildstream/utils.py | |
parent | b8543f8ac4a5d63703884a67fbe169954b6db287 (diff) | |
download | buildstream-fc79ad2c86080583ecb1078bb8841d54b4e0d0bb.tar.gz |
utils.py: Allow `list_relative_paths` to list directories
Diffstat (limited to 'buildstream/utils.py')
-rw-r--r-- | buildstream/utils.py | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/buildstream/utils.py b/buildstream/utils.py index b81a6c852..0bbc7a877 100644 --- a/buildstream/utils.py +++ b/buildstream/utils.py @@ -96,7 +96,7 @@ class FileListResult(): return ret -def list_relative_paths(directory): +def list_relative_paths(directory, *, list_dirs=True): """A generator for walking directory relative paths This generator is useful for checking the full manifest of @@ -110,6 +110,7 @@ def list_relative_paths(directory): Args: directory (str): The directory to list files in + list_dirs (bool): Whether to list directories Yields: Relative filenames in `directory` @@ -136,15 +137,16 @@ def list_relative_paths(directory): # subdirectories in the walked `dirpath`, so we extract # these symlinks from `dirnames` # - for d in dirnames: - fullpath = os.path.join(dirpath, d) - if os.path.islink(fullpath): - yield os.path.join(basepath, d) + if list_dirs: + for d in dirnames: + fullpath = os.path.join(dirpath, d) + if os.path.islink(fullpath): + yield os.path.join(basepath, d) # We've decended into an empty directory, in this case we # want to include the directory itself, but not in any other # case. - if not filenames: + if list_dirs and not filenames: yield relpath # List the filenames in the walked directory |