diff options
author | William Deegan <bill@baddogconsulting.com> | 2018-05-24 23:11:36 (GMT) |
---|---|---|
committer | William Deegan <bill@baddogconsulting.com> | 2018-11-12 16:42:44 (GMT) |
commit | 20680e3f72ef140474bb17fbbd3f61f3716a496e (patch) | |
tree | d39f2775e698205ef5b970447a3bb7ea5849b42b /src/engine/SCons | |
parent | 8c3455de4b02bd064938af54c9e0ef3249853372 (diff) | |
download | SCons-20680e3f72ef140474bb17fbbd3f61f3716a496e.zip SCons-20680e3f72ef140474bb17fbbd3f61f3716a496e.tar.gz SCons-20680e3f72ef140474bb17fbbd3f61f3716a496e.tar.bz2 |
add method find_repo_file() which finds the file in it's known repositories. Minor reformat in rfile().
Diffstat (limited to 'src/engine/SCons')
-rw-r--r-- | src/engine/SCons/Node/FS.py | 31 |
1 files changed, 28 insertions, 3 deletions
diff --git a/src/engine/SCons/Node/FS.py b/src/engine/SCons/Node/FS.py index 31c7441..f0576ca 100644 --- a/src/engine/SCons/Node/FS.py +++ b/src/engine/SCons/Node/FS.py @@ -3326,9 +3326,12 @@ class File(Base): result = self if not self.exists(): norm_name = _my_normcase(self.name) - for dir in self.dir.get_all_rdirs(): - try: node = dir.entries[norm_name] - except KeyError: node = dir.file_on_disk(self.name) + for repo_dir in self.dir.get_all_rdirs(): + try: + node = repo_dir.entries[norm_name] + except KeyError: + node = repo_dir.file_on_disk(self.name) + if node and node.exists() and \ (isinstance(node, File) or isinstance(node, Entry) or not node.is_derived()): @@ -3350,6 +3353,28 @@ class File(Base): self._memo['rfile'] = result return result + def find_repo_file(self): + """ + For this node, find if there exists a corresponding file in one or more repositories + :return: list of corresponding files in repositories + """ + retvals = [] + + norm_name = _my_normcase(self.name) + for repo_dir in self.dir.get_all_rdirs(): + try: + node = repo_dir.entries[norm_name] + except KeyError: + node = repo_dir.file_on_disk(self.name) + + if node and node.exists() and \ + (isinstance(node, File) or isinstance(node, Entry) \ + or not node.is_derived()): + retvals.append(node) + + return retvals + + def rstr(self): return str(self.rfile()) |