Loading poolpay/__main__.py +18 −4 Original line number Diff line number Diff line import logging from pathlib import Path from threading import Thread Loading @@ -10,7 +11,8 @@ from poolpay.vault.Vault import Vault from poolpay.wire.Message import Message from poolpay.wire.Server import Server # Prepare basic resources logging.info("Starting PoolPay") logging.info("Creating Vault, Display and Director") vault = Vault(paths.vault_file, paths.instance_dir) display = PygameDisplay(Path("/dev/fb1"), width=480, height=320) director = Director(play, display) Loading @@ -18,31 +20,43 @@ director = Director(play, display) def launch_application(password: str) -> None: if director.started: # Application is already launched, don't launch it a second time 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: try: logging.info("Opening database") db.open(paths.db_file) logging.info("Starting database") director.start() logging.info("Registering card removal handler") card_reader.on_card_removed(lambda reader: director.card_removed()) logging.info("Registering card placement handler and starting to wait") card_reader.on_card_placed( lambda reader: director.card_placed(reader.read_id()) ) finally: logging.info("Closing database") db.close() logging.info("Stopping server") server.stop() # Now start the wire server (over which the admin will pass us the password) 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"],)).start() server.on_receive(on_message_received) # Wait indefinitely logging.info("Waiting for vault unlock password via wire server") server.start() Loading
poolpay/__main__.py +18 −4 Original line number Diff line number Diff line import logging from pathlib import Path from threading import Thread Loading @@ -10,7 +11,8 @@ from poolpay.vault.Vault import Vault from poolpay.wire.Message import Message from poolpay.wire.Server import Server # Prepare basic resources logging.info("Starting PoolPay") logging.info("Creating Vault, Display and Director") vault = Vault(paths.vault_file, paths.instance_dir) display = PygameDisplay(Path("/dev/fb1"), width=480, height=320) director = Director(play, display) Loading @@ -18,31 +20,43 @@ director = Director(play, display) def launch_application(password: str) -> None: if director.started: # Application is already launched, don't launch it a second time 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: try: logging.info("Opening database") db.open(paths.db_file) logging.info("Starting database") director.start() logging.info("Registering card removal handler") card_reader.on_card_removed(lambda reader: director.card_removed()) logging.info("Registering card placement handler and starting to wait") card_reader.on_card_placed( lambda reader: director.card_placed(reader.read_id()) ) finally: logging.info("Closing database") db.close() logging.info("Stopping server") server.stop() # Now start the wire server (over which the admin will pass us the password) 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"],)).start() server.on_receive(on_message_received) # Wait indefinitely logging.info("Waiting for vault unlock password via wire server") server.start()