diff --git a/jsonfmt.py b/jsonfmt.py index 67e4eb7..9aedbc4 100755 --- a/jsonfmt.py +++ b/jsonfmt.py @@ -10,6 +10,7 @@ from io import TextIOBase from pydoc import pager from shutil import get_terminal_size +from signal import signal, SIGINT from sys import stdin, stdout, stderr, exit as sys_exit from typing import Any, List, IO, Optional, Sequence, Tuple, Union from unittest.mock import patch @@ -278,6 +279,14 @@ def parse_cmdline_args(args: Optional[Sequence[str]] = None): return parser.parse_args(args) +def handle_interrupt(signum, _): + print_err('user canceled!') + sys_exit(0) + + +signal(SIGINT, handle_interrupt) + + def main(): args = parse_cmdline_args()