Handle broken JSON files

This commit is contained in:
Ivan Kravets
2018-04-15 06:08:29 +03:00
parent d0cc3a045e
commit aa28beddd8
3 changed files with 8 additions and 4 deletions

View File

@ -27,7 +27,7 @@ from os.path import (basename, commonprefix, dirname, isdir, isfile, join,
import SCons.Scanner
from SCons.Script import ARGUMENTS, COMMAND_LINE_TARGETS, DefaultEnvironment
from platformio import util
from platformio import exception, util
from platformio.builder.tools import platformio as piotool
from platformio.managers.lib import LibraryManager
from platformio.managers.package import PackageManager
@ -777,7 +777,7 @@ def GetLibBuilders(env): # pylint: disable=too-many-branches
try:
lb = LibBuilderFactory.new(
env, join(libs_dir, item), verbose=verbose)
except ValueError:
except exception.InvalidJSONFile:
if verbose:
sys.stderr.write("Skip library with broken manifest: %s\n"
% join(libs_dir, item))

View File

@ -207,6 +207,11 @@ class InvalidSettingValue(PlatformioException):
MESSAGE = "Invalid value '{0}' for the setting '{1}'"
class InvalidJSONFile(PlatformioException):
MESSAGE = "Could not load broken JSON: {0}"
class CIBuildEnvsEmpty(PlatformioException):
MESSAGE = ("Can't find PlatformIO build environments.\n"

View File

@ -169,8 +169,7 @@ def load_json(file_path):
with open(file_path, "r") as f:
return json.load(f)
except ValueError:
raise exception.PlatformioException(
"Could not load broken JSON: %s" % file_path)
raise exception.InvalidJSONFile(file_path)
def get_systype():