From a162ef1f0ac485a9721666b3645a33801958a5d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=BCrg=20Billeter?= Date: Fri, 1 Feb 2019 11:02:46 +0000 Subject: _casbaseddirectory.py: Do not mimic os.walk() in list_relative_paths() This matches the change in utils.list_relative_paths() that now sorts all symlinks as files, instead of following the broken behavior of os.walk(). --- buildstream/storage/_casbaseddirectory.py | 15 +-------------- 1 file changed, 1 insertion(+), 14 deletions(-) diff --git a/buildstream/storage/_casbaseddirectory.py b/buildstream/storage/_casbaseddirectory.py index d88222273..09c8c9875 100644 --- a/buildstream/storage/_casbaseddirectory.py +++ b/buildstream/storage/_casbaseddirectory.py @@ -795,24 +795,11 @@ class CasBasedDirectory(Directory): Return value: List(str) - list of all paths """ - symlink_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), + file_list = list(filter(lambda i: not isinstance(i[1].buildstream_object, CasBasedDirectory), self.index.items())) directory_list = filter(lambda i: isinstance(i[1].buildstream_object, CasBasedDirectory), self.index.items()) - # We need to mimic the behaviour of os.walk, in which symlinks - # to directories count as directories and symlinks to file or - # broken symlinks count as files. os.walk doesn't follow - # symlinks, so we don't recurse. - for (k, v) in sorted(symlink_list): - target = self._resolve(k, absolute_symlinks_resolve=True) - if isinstance(target, CasBasedDirectory): - yield os.path.join(relpath, k) - else: - file_list.append((k, v)) - if file_list == [] and relpath != "": yield relpath else: -- cgit v1.2.1