Loading poolpay/__main__.py +27 −10 Original line number Diff line number Diff line Loading @@ -26,15 +26,22 @@ touch_screen = EvdevTouchScreen(Path("/dev/input/event0")) director = Director(play, display) def launch_application(password: str) -> None: def launch_application(password: str | None) -> None: if director.started: logging.warning( "Application is already launched, don't launch it a second time" ) return logging.info("Opening vault, creating CardReader") with vault.open(password), Pirc522CardReader() as card_reader, touch_screen: open_vault = vault if password: logging.info("Opening vault") open_vault = vault.open(password) else: logging.info("No password to open vault was given, so assuming it was already open") logging.info("Creating CardReader") with open_vault, Pirc522CardReader() as card_reader, touch_screen: try: logging.info("Opening database") db.open(paths.db_file) Loading @@ -55,18 +62,21 @@ def launch_application(password: str) -> None: server.stop() def launch_application_as_daemon(password: str | None) -> None: logging.info("Launching main application as daemon thread") Thread( target=launch_application, args=(password,), daemon=True ).start() logging.info("Creating wire.Server") server = Server(paths.socket_path) def on_message_received(message: Message) -> None: if message.get("action") == "unlock" and message.get("password"): logging.info( "Unlock message received via wire, starting thread to launch main application" ) Thread( target=launch_application, args=(message["password"],), daemon=True ).start() logging.info("Unlock message received via wire") launch_application_as_daemon(message["password"]) server.on_receive(on_message_received) Loading @@ -83,5 +93,12 @@ logging.info("Registering SIGINT and SIGTERM handlers") signal.signal(signal.SIGINT, handle_signal) # for keyboard interrupt signal.signal(signal.SIGTERM, handle_signal) # for systemd interrupt if vault.is_open: # The vault has already been opened, so we don't need to wait for a password to start launch_application_as_daemon(None) # We will still launch the server, in case I ever get around to implementing more commands else: logging.info("Waiting for vault unlock password via wire server") # As documented above, we launch the server in any case server.start() Loading
poolpay/__main__.py +27 −10 Original line number Diff line number Diff line Loading @@ -26,15 +26,22 @@ touch_screen = EvdevTouchScreen(Path("/dev/input/event0")) director = Director(play, display) def launch_application(password: str) -> None: def launch_application(password: str | None) -> None: if director.started: logging.warning( "Application is already launched, don't launch it a second time" ) return logging.info("Opening vault, creating CardReader") with vault.open(password), Pirc522CardReader() as card_reader, touch_screen: open_vault = vault if password: logging.info("Opening vault") open_vault = vault.open(password) else: logging.info("No password to open vault was given, so assuming it was already open") logging.info("Creating CardReader") with open_vault, Pirc522CardReader() as card_reader, touch_screen: try: logging.info("Opening database") db.open(paths.db_file) Loading @@ -55,18 +62,21 @@ def launch_application(password: str) -> None: server.stop() def launch_application_as_daemon(password: str | None) -> None: logging.info("Launching main application as daemon thread") Thread( target=launch_application, args=(password,), daemon=True ).start() logging.info("Creating wire.Server") server = Server(paths.socket_path) def on_message_received(message: Message) -> None: if message.get("action") == "unlock" and message.get("password"): logging.info( "Unlock message received via wire, starting thread to launch main application" ) Thread( target=launch_application, args=(message["password"],), daemon=True ).start() logging.info("Unlock message received via wire") launch_application_as_daemon(message["password"]) server.on_receive(on_message_received) Loading @@ -83,5 +93,12 @@ logging.info("Registering SIGINT and SIGTERM handlers") signal.signal(signal.SIGINT, handle_signal) # for keyboard interrupt signal.signal(signal.SIGTERM, handle_signal) # for systemd interrupt if vault.is_open: # The vault has already been opened, so we don't need to wait for a password to start launch_application_as_daemon(None) # We will still launch the server, in case I ever get around to implementing more commands else: logging.info("Waiting for vault unlock password via wire server") # As documented above, we launch the server in any case server.start()