summaryrefslogtreecommitdiff
path: root/morphlib/sysbranchdir.py
diff options
context:
space:
mode:
Diffstat (limited to 'morphlib/sysbranchdir.py')
-rw-r--r--morphlib/sysbranchdir.py18
1 files changed, 11 insertions, 7 deletions
diff --git a/morphlib/sysbranchdir.py b/morphlib/sysbranchdir.py
index 9d96e974..8546d726 100644
--- a/morphlib/sysbranchdir.py
+++ b/morphlib/sysbranchdir.py
@@ -175,13 +175,17 @@ class SystemBranchDirectory(object):
def load_all_morphologies(self, loader): # pragma: no cover
gd_name = self.get_git_directory_name(self.root_repository_url)
gd = morphlib.gitdir.GitDirectory(gd_name)
- mf = morphlib.morphologyfinder.MorphologyFinder(gd)
- for morph in mf.list_morphologies():
- text, filename = mf.read_morphology(morph)
- m = loader.load_from_string(text, filename=filename)
- m.repo_url = self.root_repository_url
- m.ref = self.system_branch_name
- yield m
+ for filename in gd.list_files():
+ text = gd.read_file(filename)
+ try:
+ m = loader.load_from_string(text, filename=filename)
+ except (morphlib.morphloader.MorphologySyntaxError,
+ morphlib.morphloader.MorphologyValidationError) as e:
+ continue
+ else:
+ m.repo_url = self.root_repository_url
+ m.ref = self.system_branch_name
+ yield m
def create(root_directory, root_repository_url, system_branch_name):