Cleanly exit on SIGINT

This commit is contained in:
agatha 2023-11-11 15:40:52 -05:00
parent 1e958b397a
commit 1c6a45a1d2

30
main.py
View File

@ -1,4 +1,5 @@
"""GitMon""" """GitMon"""
import signal
import time import time
from loguru import logger from loguru import logger
from gitmon.api import GitHubApi from gitmon.api import GitHubApi
@ -21,21 +22,32 @@ def log_event(event):
logger.log('CREATE', f'{event_type}:\thttps://github.com/{repo["name"]}, {actor["login"]}') logger.log('CREATE', f'{event_type}:\thttps://github.com/{repo["name"]}, {actor["login"]}')
def sigint_handler(signum, frame):
"""Signal handler for Ctrl+C."""
raise KeyboardInterrupt
def main(): def main():
"""Main entry point.""" """Main entry point."""
# Setup logger and signal handling
setup_logger() setup_logger()
signal.signal(signal.SIGINT, sigint_handler)
api = GitHubApi(token) api = GitHubApi(token)
while True: try:
events = api.get_events() while True:
for event in events: events = api.get_events()
if ( for event in events:
isinstance(event, dict) if (
and event.get('type') in ['CreateEvent', 'DeleteEvent'] isinstance(event, dict)
): and event.get('type') in ['CreateEvent', 'DeleteEvent']
log_event(event) ):
log_event(event)
time.sleep(5) time.sleep(1)
except KeyboardInterrupt:
logger.info('Program terminating')
if __name__ == '__main__': if __name__ == '__main__':