def handle_jinja_errors(func):
'''
Print nice error messages on jinja exceptions.
Expect a *base_dir* argument, so normally used after ``@repos_command``.
'''
@functools.wraps(func)
def wrapper(base_dir, **kwargs):
try:
return func(base_dir=base_dir, **kwargs)
except jinja2.TemplateNotFound as exc:
click.secho('Template not found: %s' % exc.name, fg='red',
bold=True)
except jinja2.TemplateError:
exc_info = sys.exc_info()
stack, error = templates.extract_jinja_error(exc_info, base_dir)
templates.print_jinja_error(stack, error)
sys.exit(1)
return wrapper
评论列表
文章目录