add a --strict flag to the template generator
When --strict is passed warnings are treated as errors to stop the build. This is useful for debugging when running tools/test.sh locally, for example. Change-Id: I1747f0e554d76ed85d8e00cf850f3413eef1949b Signed-off-by: Doug Hellmann <doug@doughellmann.com>
This commit is contained in:
parent
eb7f09ba96
commit
b469dc7260
@ -135,6 +135,11 @@ def parse_command_line_arguments():
|
|||||||
action='store_true',
|
action='store_true',
|
||||||
help='only test links, do not render templates',
|
help='only test links, do not render templates',
|
||||||
)
|
)
|
||||||
|
parser.add_argument('--strict',
|
||||||
|
default=False,
|
||||||
|
action='store_true',
|
||||||
|
help='treat warnings as errors',
|
||||||
|
)
|
||||||
return parser.parse_args()
|
return parser.parse_args()
|
||||||
|
|
||||||
|
|
||||||
@ -186,7 +191,8 @@ def load_project_data(source_directory,
|
|||||||
check_all_links=False,
|
check_all_links=False,
|
||||||
skip_links=False,
|
skip_links=False,
|
||||||
series_to_load=None,
|
series_to_load=None,
|
||||||
governed_deliverables=[]):
|
governed_deliverables=[],
|
||||||
|
strict=False):
|
||||||
"Return a dict with project data grouped by series."
|
"Return a dict with project data grouped by series."
|
||||||
logger = logging.getLogger()
|
logger = logging.getLogger()
|
||||||
series_to_load = series_to_load or []
|
series_to_load = series_to_load or []
|
||||||
@ -228,10 +234,16 @@ def load_project_data(source_directory,
|
|||||||
|
|
||||||
if (series == 'latest' and
|
if (series == 'latest' and
|
||||||
deliverable_name not in governed_deliverables):
|
deliverable_name not in governed_deliverables):
|
||||||
logger.warning(
|
msg = ('{} is no longer part of an official project, '
|
||||||
('%s is no longer part of an official project, '
|
'{} in {}').format(
|
||||||
'ignoring in %s'),
|
deliverable_name,
|
||||||
deliverable_name, filename)
|
'error' if strict else 'ignoring',
|
||||||
|
filename)
|
||||||
|
logger.warning(msg)
|
||||||
|
if strict:
|
||||||
|
logger.info('Known deliverables: %s',
|
||||||
|
sorted(governed_deliverables))
|
||||||
|
raise RuntimeError(msg)
|
||||||
continue
|
continue
|
||||||
logger.info('including %s', deliverable_name)
|
logger.info('including %s', deliverable_name)
|
||||||
data.append(project)
|
data.append(project)
|
||||||
@ -316,10 +328,11 @@ def load_project_data(source_directory,
|
|||||||
)
|
)
|
||||||
fail = True
|
fail = True
|
||||||
elif (not flag_val) and check_all_links and exists:
|
elif (not flag_val) and check_all_links and exists:
|
||||||
logger.warning(
|
msg = '{} not set for {} but {} does exist'.format(
|
||||||
'%s not set for %s but %s does exist',
|
flag, project_name, url)
|
||||||
flag, project_name, url,
|
logger.warning(msg)
|
||||||
)
|
if strict:
|
||||||
|
raise RuntimeError(msg)
|
||||||
|
|
||||||
if fail:
|
if fail:
|
||||||
raise ValueError('invalid input in %s' % filename)
|
raise ValueError('invalid input in %s' % filename)
|
||||||
@ -469,6 +482,7 @@ def main():
|
|||||||
skip_links=args.skip_links,
|
skip_links=args.skip_links,
|
||||||
series_to_load=args.series,
|
series_to_load=args.series,
|
||||||
governed_deliverables=deliverables,
|
governed_deliverables=deliverables,
|
||||||
|
strict=args.strict,
|
||||||
)
|
)
|
||||||
|
|
||||||
# Set up jinja to discover the templates.
|
# Set up jinja to discover the templates.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user