summaryrefslogtreecommitdiffstats
path: root/src/engine/SCons
diff options
context:
space:
mode:
authorWilliam Deegan <bill@baddogconsulting.com>2018-05-24 23:11:36 (GMT)
committerWilliam Deegan <bill@baddogconsulting.com>2018-11-12 16:42:44 (GMT)
commit20680e3f72ef140474bb17fbbd3f61f3716a496e (patch)
treed39f2775e698205ef5b970447a3bb7ea5849b42b /src/engine/SCons
parent8c3455de4b02bd064938af54c9e0ef3249853372 (diff)
downloadSCons-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.py31
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())