diff --git a/matrix_webhook/app.py b/matrix_webhook/app.py index b56ad7d..fb202ad 100644 --- a/matrix_webhook/app.py +++ b/matrix_webhook/app.py @@ -2,6 +2,7 @@ import asyncio import logging +from pathlib import Path 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: + Path.chmod(conf.SERVER_PATH, 0o664) + # Run until we get a shutdown request await event.wait() diff --git a/matrix_webhook/conf.py b/matrix_webhook/conf.py index d3a436c..cb630b2 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( + "-S", + "--server-path", + default=os.environ.get("SERVER_PATH", ""), + help="unix path to listen to. Default: `''`. Environment variable: `SERVER_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.server_path MATRIX_URL = args.matrix_url MATRIX_ID = args.matrix_id MATRIX_PW = args.matrix_pw