in shared/lib/fileprovider.py [0:0]
def get_files(self, directory_to_search):
directory_to_search = os.path.join(self.repo_dir, directory_to_search)
if not os.path.exists(directory_to_search):
logger.error("Directory doesn't exist: {}".format(directory_to_search))
return None
file_list = []
for root, dirs, files in os.walk(directory_to_search, topdown=True):
relative_root = relpath(root, self.repo_dir)
# Skip excluded paths
excluded = False
for exclude_path_re in self.exclude_path_regexps:
if exclude_path_re.match(relative_root):
excluded = True
break;
if excluded:
logger.debug("Excluded {}".format(relative_root))
continue
for dir in dirs:
relative_dir = relpath(os.path.join(root, dir), self.repo_dir)
excluded = False
for exclude_path_re in self.exclude_path_regexps:
if exclude_path_re.match(relative_dir):
excluded = True
break;
if excluded:
logger.debug("Excluded {}".format(relative_dir))
dirs.remove(dir)
continue
# Exclude files
for filename in files:
relative_filename = os.path.join(relative_root, filename)
# Ignore files not in the repo
rval = self.git.ls_files(relative_filename)
if not rval:
logger.debug("Excluded {}".format(relative_filename))
continue
excluded = False
for exclude_file_re in self.exclude_file_regexps:
if exclude_file_re.match(relative_filename):
excluded = True
break
if excluded:
logger.debug("Excluded {}".format(relative_filename))
continue
file_list.append(relative_filename)
return file_list