From cded618892076ffc9caa3f583d155074d1db6119 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20Schl=C3=BC=C3=9Fler?= Date: Mon, 19 Feb 2024 15:42:53 +0100 Subject: [PATCH] Optionally serve hooks via a UNIX domain socket. --- matrix_webhook/app.py | 9 ++++++++- matrix_webhook/conf.py | 7 +++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/matrix_webhook/app.py b/matrix_webhook/app.py index b56ad7d..de7e7ce 100644 --- a/matrix_webhook/app.py +++ b/matrix_webhook/app.py @@ -2,6 +2,7 @@ import asyncio import logging +import os from signal import SIGINT, SIGTERM from aiohttp import web @@ -27,9 +28,15 @@ async def main(event): runner = web.ServerRunner(server) await runner.setup() LOGGER.info(f"Binding on {conf.SERVER_ADDRESS=}") - site = web.TCPSite(runner, *conf.SERVER_ADDRESS) + if conf.SERVER_PATH: + site = web.UnixSite(runner, conf.SERVER_PATH) + else: + site = web.TCPSite(runner, *conf.SERVER_ADDRESS) await site.start() + if conf.SERVER_PATH: + os.chmod(conf.SERVER_PATH, 0o774) + # Run until we get a shutdown request await event.wait() diff --git a/matrix_webhook/conf.py b/matrix_webhook/conf.py index d3a436c..89aed46 100644 --- a/matrix_webhook/conf.py +++ b/matrix_webhook/conf.py @@ -9,6 +9,12 @@ parser.add_argument( default=os.environ.get("HOST", ""), help="host to listen to. Default: `''`. Environment variable: `HOST`", ) +parser.add_argument( + "-U", + "--path", + default=os.environ.get("PATH", ""), + help="unix path to listen to. Default: `''`. Environment variable: `PATH`", +) parser.add_argument( "-P", "--port", @@ -71,6 +77,7 @@ parser.add_argument( args = parser.parse_args() SERVER_ADDRESS = (args.host, args.port) +SERVER_PATH = args.path MATRIX_URL = args.matrix_url MATRIX_ID = args.matrix_id MATRIX_PW = args.matrix_pw