diff options
author | Jim MacArthur <jim.macarthur@codethink.co.uk> | 2018-10-04 17:52:15 +0100 |
---|---|---|
committer | Jim MacArthur <jim.macarthur@codethink.co.uk> | 2018-10-04 17:52:15 +0100 |
commit | 7e984dffec01889051d952f1b20febee0fe062c5 (patch) | |
tree | 0a35ec5720f2d6f11084c1bfd203a689fcf67dac | |
parent | dcd355edd9e83fcf3e5c9534636090db98352bbf (diff) | |
download | buildstream-7e984dffec01889051d952f1b20febee0fe062c5.tar.gz |
_casbaseddirectory: _list_relative_paths now passes all tests
-rw-r--r-- | buildstream/storage/_casbaseddirectory.py | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/buildstream/storage/_casbaseddirectory.py b/buildstream/storage/_casbaseddirectory.py index 00e9b3e21..5f6e897f3 100644 --- a/buildstream/storage/_casbaseddirectory.py +++ b/buildstream/storage/_casbaseddirectory.py @@ -610,16 +610,18 @@ class CasBasedDirectory(Directory): symlink_list = list(filter(lambda i: isinstance(i[1].pb_object, remote_execution_pb2.SymlinkNode), self.index.items())) file_list = list(filter(lambda i: isinstance(i[1].pb_object, remote_execution_pb2.FileNode), self.index.items())) directory_list = list(filter(lambda i: isinstance(i[1].buildstream_object, CasBasedDirectory), self.index.items())) + symlinks_to_directories_list = [] print("Running list_relative_paths on relpath {}. files={}, symlinks={}".format(relpath, [f[0] for f in file_list], [s[0] for s in symlink_list])) for (k, v) in sorted(symlink_list): target = self._resolve(k, absolute_symlinks_resolve=True) if isinstance(target, CasBasedDirectory): - print("Adding the resolved symlink {} which resolves to {} to our directory list".format(k, target)) - directory_list.append((k,IndexEntry(k, buildstream_object=target))) + symlinks_to_directories_list.append(k) else: # Broken symlinks are also considered files! file_list.append((k,v)) + for d in sorted(symlinks_to_directories_list): + yield os.path.join(relpath, d) if file_list == [] and relpath != "": print("Yielding empty directory name {}".format(relpath)) yield relpath |