From 1a3612fe6d347e458a53d7a9e920a91ea502e6ba Mon Sep 17 00:00:00 2001 From: Jason Chang Date: Tue, 8 Aug 2023 14:12:53 -0700 Subject: Raise RepoExitError in place of sys.exit Bug: b/293344017 Change-Id: Icae4932b00e4068cba502a5ab4a0274fd7854d9d Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/382214 Reviewed-by: Gavin Mak Tested-by: Jason Chang Reviewed-by: Aravind Vasudevan Commit-Queue: Jason Chang --- main.py | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) (limited to 'main.py') diff --git a/main.py b/main.py index b213f0a4..ffed0b72 100755 --- a/main.py +++ b/main.py @@ -57,6 +57,7 @@ from error import RepoChangedException from error import RepoExitError from error import RepoUnhandledExceptionError from error import RepoError +from error import SilentRepoExitError import gitc_utils from manifest_xml import GitcClient, RepoClient from pager import RunPager, TerminatePager @@ -872,16 +873,20 @@ def _Main(argv): result = repo._Run(name, gopts, argv) or 0 except RepoExitError as e: - exception_name = type(e).__name__ + if not isinstance(e, SilentRepoExitError): + exception_name = type(e).__name__ + print("fatal: %s" % e, file=sys.stderr) + if e.aggregate_errors: + print(f"{exception_name} Aggregate Errors") + for err in e.aggregate_errors[:MAX_PRINT_ERRORS]: + print(err) + if ( + e.aggregate_errors + and len(e.aggregate_errors) > MAX_PRINT_ERRORS + ): + diff = len(e.aggregate_errors) - MAX_PRINT_ERRORS + print(f"+{diff} additional errors ...") result = e.exit_code - print("fatal: %s" % e, file=sys.stderr) - if e.aggregate_errors: - print(f"{exception_name} Aggregate Errors") - for err in e.aggregate_errors[:MAX_PRINT_ERRORS]: - print(err) - if len(e.aggregate_errors) > MAX_PRINT_ERRORS: - diff = len(e.aggregate_errors) - MAX_PRINT_ERRORS - print(f"+{diff} additional errors ...") except KeyboardInterrupt: print("aborted by user", file=sys.stderr) result = KEYBOARD_INTERRUPT_EXIT -- cgit v1.2.3-54-g00ecf