binman: Report missing external blobs using error level

Print missing external blobs using error level and missing optional
external blobs using warning level. Also change to only print the header
line in color, red for missing and yellow for optional.

Signed-off-by: Jonas Karlman <jonas@kwiboo.se>
Reviewed-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
Jonas Karlman 2023-07-18 20:34:35 +00:00 committed by Simon Glass
parent 05dec37488
commit d92c4dd27d

View file

@ -112,12 +112,12 @@ def _ReadMissingBlobHelp():
_FinishTag(tag, msg, result) _FinishTag(tag, msg, result)
return result return result
def _ShowBlobHelp(path, text): def _ShowBlobHelp(level, path, text):
tout.warning('\n%s:' % path) tout.do_output(level, '\n%s:' % path)
for line in text.splitlines(): for line in text.splitlines():
tout.warning(' %s' % line) tout.do_output(level, ' %s' % line)
def _ShowHelpForMissingBlobs(missing_list): def _ShowHelpForMissingBlobs(level, missing_list):
"""Show help for each missing blob to help the user take action """Show help for each missing blob to help the user take action
Args: Args:
@ -134,7 +134,7 @@ def _ShowHelpForMissingBlobs(missing_list):
# Show the first match help message # Show the first match help message
for tag in tags: for tag in tags:
if tag in missing_blob_help: if tag in missing_blob_help:
_ShowBlobHelp(entry._node.path, missing_blob_help[tag]) _ShowBlobHelp(level, entry._node.path, missing_blob_help[tag])
break break
def GetEntryModules(include_testing=True): def GetEntryModules(include_testing=True):
@ -658,9 +658,9 @@ def ProcessImage(image, update_fdt, write_map, get_contents=True,
missing_list = [] missing_list = []
image.CheckMissing(missing_list) image.CheckMissing(missing_list)
if missing_list: if missing_list:
tout.warning("Image '%s' is missing external blobs and is non-functional: %s" % tout.error("Image '%s' is missing external blobs and is non-functional: %s" %
(image.name, ' '.join([e.name for e in missing_list]))) (image.name, ' '.join([e.name for e in missing_list])))
_ShowHelpForMissingBlobs(missing_list) _ShowHelpForMissingBlobs(tout.ERROR, missing_list)
faked_list = [] faked_list = []
image.CheckFakedBlobs(faked_list) image.CheckFakedBlobs(faked_list)
@ -676,7 +676,7 @@ def ProcessImage(image, update_fdt, write_map, get_contents=True,
tout.warning( tout.warning(
"Image '%s' is missing optional external blobs but is still functional: %s" % "Image '%s' is missing optional external blobs but is still functional: %s" %
(image.name, ' '.join([e.name for e in optional_list]))) (image.name, ' '.join([e.name for e in optional_list])))
_ShowHelpForMissingBlobs(optional_list) _ShowHelpForMissingBlobs(tout.WARNING, optional_list)
missing_bintool_list = [] missing_bintool_list = []
image.check_missing_bintools(missing_bintool_list) image.check_missing_bintools(missing_bintool_list)