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

View File

@ -207,6 +207,11 @@ class InvalidSettingValue(PlatformioException):
MESSAGE = "Invalid value '{0}' for the setting '{1}'" MESSAGE = "Invalid value '{0}' for the setting '{1}'"
class InvalidJSONFile(PlatformioException):
MESSAGE = "Could not load broken JSON: {0}"
class CIBuildEnvsEmpty(PlatformioException): class CIBuildEnvsEmpty(PlatformioException):
MESSAGE = ("Can't find PlatformIO build environments.\n" 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: with open(file_path, "r") as f:
return json.load(f) return json.load(f)
except ValueError: except ValueError:
raise exception.PlatformioException( raise exception.InvalidJSONFile(file_path)
"Could not load broken JSON: %s" % file_path)
def get_systype(): def get_systype():