diff --git a/platformio/exception.py b/platformio/exception.py index 7064b34e..5b30ba24 100644 --- a/platformio/exception.py +++ b/platformio/exception.py @@ -60,6 +60,11 @@ class UnknownBoard(PlatformioException): MESSAGE = "Unknown board ID '{0}'" +class InvalidBoardManifest(PlatformioException): + + MESSAGE = "Invalid board JSON manifest '{0}'" + + class UnknownFramework(PlatformioException): MESSAGE = "Unknown framework '{0}'" diff --git a/platformio/managers/platform.py b/platformio/managers/platform.py index 600c8b4f..97295e40 100644 --- a/platformio/managers/platform.py +++ b/platformio/managers/platform.py @@ -491,7 +491,10 @@ class PlatformBoardConfig(object): self._id = basename(manifest_path)[:-5] assert isfile(manifest_path) self.manifest_path = manifest_path - self._manifest = util.load_json(manifest_path) + try: + self._manifest = util.load_json(manifest_path) + except ValueError: + raise exception.InvalidBoardManifest(manifest_path) assert set(["name", "url", "vendor"]) <= set(self._manifest.keys()) def get(self, path, default=None):