aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Frysinger <vapier@google.com>2023-06-09 23:01:54 -0400
committerMike Frysinger <vapier@google.com>2023-06-10 23:29:52 +0000
commit5f194f1138c18387845ac63a519dddfe6ca05018 (patch)
treed831c101307fbfffd90eabc4de24b68311e24cb9
parent5c139d804bbe48ad3e7ac2184c313b9ac7be9ce7 (diff)
downloadrepohooks-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-xpre-upload.py11
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