diff options
author | Mike Frysinger <vapier@google.com> | 2023-06-09 23:01:54 -0400 |
---|---|---|
committer | Mike Frysinger <vapier@google.com> | 2023-06-10 23:29:52 +0000 |
commit | 5f194f1138c18387845ac63a519dddfe6ca05018 (patch) | |
tree | d831c101307fbfffd90eabc4de24b68311e24cb9 | |
parent | 5c139d804bbe48ad3e7ac2184c313b9ac7be9ce7 (diff) | |
download | repohooks-5f194f1138c18387845ac63a519dddfe6ca05018.tar.gz |
pre-upload: handle Ctrl+C when running directly
Exit gracefully when the user interrupts us with direct execution.
Bug: None
Test: `./pre-upload.py` and then Ctrl+C
Change-Id: I43f0938e8f46d37048cfd8f8c050d0b8499538c1
-rwxr-xr-x | pre-upload.py | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/pre-upload.py b/pre-upload.py index cf97e10..5c820c6 100755 --- a/pre-upload.py +++ b/pre-upload.py @@ -22,6 +22,7 @@ when developing. import argparse import datetime import os +import signal import sys from typing import List, Optional @@ -551,9 +552,13 @@ def direct_main(argv): if not opts.project: parser.error(f"Couldn't identify the project of {opts.dir}") - if _run_projects_hooks([opts.project], [opts.dir], from_git=opts.git, - commit_list=opts.commits): - return 0 + try: + if _run_projects_hooks([opts.project], [opts.dir], from_git=opts.git, + commit_list=opts.commits): + return 0 + except KeyboardInterrupt: + print('Aborting execution early due to user interrupt', file=sys.stderr) + return 128 + signal.SIGINT return 1 |