Skip to content

Commit de39147

Browse files
authored
Add KeyboardInterrupt handling in CLI
Handle KeyboardInterrupt to gracefully exit and notify user.
1 parent 284760d commit de39147

File tree

1 file changed

+16
-10
lines changed

1 file changed

+16
-10
lines changed

pyupgradecheck/cli.py

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -59,18 +59,24 @@ def main():
5959
)
6060
spinner.start()
6161

62-
start_time = time.time()
63-
report = check_environment(args.target, packages_to_check)
64-
elapsed_time = time.time() - start_time
62+
try:
63+
start_time = time.time()
64+
report = check_environment(args.target, packages_to_check)
65+
elapsed_time = time.time() - start_time
6566

66-
if spinner:
67-
spinner.succeed(f"Completed in {elapsed_time:.1f} seconds")
67+
if spinner:
68+
spinner.succeed(f"Completed in {elapsed_time:.1f} seconds")
6869

69-
if args.json:
70-
print(json.dumps(report, indent=2))
71-
else:
72-
for pkg, info in sorted(report.items()):
73-
print(f"{pkg} {info['version']}: {info['status']} ({info['details']})")
70+
if args.json:
71+
print(json.dumps(report, indent=2))
72+
else:
73+
for pkg, info in sorted(report.items()):
74+
print(f"{pkg} {info['version']}: {info['status']} ({info['details']})")
75+
except KeyboardInterrupt:
76+
if spinner:
77+
spinner.fail("Interrupted by user")
78+
print("\nOperation cancelled by user.")
79+
raise SystemExit(1)
7480

7581

7682
if __name__ == "__main__":

0 commit comments

Comments
 (0)