diff --git a/client/client.py b/client/client.py index 4423c7e840c4b70319024fc493e99cad5a1e729c..310abefc3b1c2e27f1c7d64007d6f1cddfd90fea 100755 --- a/client/client.py +++ b/client/client.py @@ -11,6 +11,8 @@ import time import logging import argparse import websockets +import pathlib +import tempfile class MPV: @@ -159,7 +161,14 @@ running""", del args.start_mpv if args.mpv_socket is None: - args.mpv_socket = "/tmp/mpvsocket" + if "XDG_RUNTIME_DIR" in os.environ: + args.tmp_dir = None + xdg_runtime_dir = os.environ["XDG_RUNTIME_DIR"] + else: + args.tmp_dir = tempfile.TemporaryDirectory(dir="/tmp", prefix="mpvsync-") + xdg_runtime_dir = args.tmp_dir.name + + args.mpv_socket = pathlib.Path(xdg_runtime_dir) / "mpvsocket" elif not is_socket(args.mpv_socket): parser.error( f"""The given socket path {args.mpv_socket} is not a UNIX socket""" @@ -183,6 +192,8 @@ def main(): asyncio.run(async_main(args)) except KeyboardInterrupt: logging.info("Got KeyboardInterrupt. Terminating gracefully.") + if args.tmp_dir is not None: + args.tmp_dir.cleanup() sys.exit(0)