diff --git a/platformio/commands/check/command.py b/platformio/commands/check/command.py index 3d430b02..be270b3d 100644 --- a/platformio/commands/check/command.py +++ b/platformio/commands/check/command.py @@ -159,10 +159,10 @@ def cli( click.echo("No defects found") print_processing_footer(result) - if json_output: - click.echo(dump_json_to_unicode(results_to_json(results))) - elif not silent: - print_check_summary(results) + if json_output: + click.echo(dump_json_to_unicode(results_to_json(results))) + elif not silent: + print_check_summary(results) command_failed = any(r.get("succeeded") is False for r in results) if command_failed: diff --git a/platformio/commands/check/defect.py b/platformio/commands/check/defect.py index 03e59c3c..ca5d0e03 100644 --- a/platformio/commands/check/defect.py +++ b/platformio/commands/check/defect.py @@ -12,7 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. -from os.path import relpath +from os.path import isabs, isfile, join, relpath import click @@ -82,11 +82,15 @@ class DefectItem(object): raise Exception("Unknown severity label -> %s" % label) def as_dict(self): + filepath = self.file + if not isabs(filepath) and isfile(join(get_project_dir(), filepath)): + filepath = join(get_project_dir(), filepath) + return { "severity": self.SEVERITY_LABELS[self.severity], "category": self.category, "message": self.message, - "file": self.file, + "file": filepath, "line": self.line, "column": self.column, "callstack": self.callstack,