diff --git a/buildstream/_exceptions.py b/buildstream/_exceptions.py index 6fe4f4847b2ea98f2b2e8ced50d1b024ec1abc3d..69f539f79431ab04305d0ddbcfe8caf9a0b4af28 100644 --- a/buildstream/_exceptions.py +++ b/buildstream/_exceptions.py @@ -223,6 +223,9 @@ class LoadErrorReason(Enum): # An attempt so set the value of a protected variable PROTECTED_VARIABLE_REDEFINED = 23 + # A project.conf file was invalid + INVALID_PROJECT_CONF = 24 + # LoadError # diff --git a/buildstream/_project.py b/buildstream/_project.py index f0ca3d71bde4b5c9fac81957e90d1546d5e96ad6..8b27f4e6b885502357af32254700555cb37db5b4 100644 --- a/buildstream/_project.py +++ b/buildstream/_project.py @@ -385,7 +385,10 @@ class Project(): self._project_conf = _yaml.load(projectfile) except LoadError as e: # Raise a more specific error here - raise LoadError(LoadErrorReason.MISSING_PROJECT_CONF, str(e)) + if e.reason == LoadErrorReason.MISSING_FILE: + raise LoadError(LoadErrorReason.MISSING_PROJECT_CONF, str(e)) + elif e.reason == LoadErrorReason.INVALID_YAML: + raise LoadError(LoadErrorReason.INVALID_PROJECT_CONF, str(e)) pre_config_node = _yaml.node_copy(self._default_config_node) _yaml.composite(pre_config_node, self._project_conf)