#!/usr/bin/env python3 import argparse import json import os import socketserver import tempfile from pathlib import Path ARGS = None HTML_TEMPLATE = """\
{}".format(data.decode(errors="replace")) html = HTML_TEMPLATE.format(title=title or "?", content=content) path = str(Path(ARGS.root) / "txt") if not os.path.isdir(path): print(f"Missing '{path}' folder.") return None with tempfile.NamedTemporaryFile( mode="wt", dir=path, suffix=".html", delete=False ) as output_file: output_file.write(html) os.chmod(output_file.name, 0o644) return output_file.name def main(): argp = argparse.ArgumentParser(description="Share stuff through a socket.") argp.add_argument("root", help="root path where to put files") argp.add_argument("-s", "--socket", help="socket path") global ARGS ARGS = argp.parse_args() socket_path = ARGS.socket if not socket_path: runtime_dir = os.environ.get("RUNTIME_DIRECTORY") if not runtime_dir: exit("No socket path nor runtime directory specified.") socket_path = os.path.join(runtime_dir, "shr.sock") print("Socket path:", socket_path) if os.path.exists(socket_path): os.unlink(socket_path) try: with socketserver.UnixStreamServer(socket_path, Handler) as server: server.serve_forever() except KeyboardInterrupt: print("Stopping server.") finally: os.unlink(socket_path) if __name__ == "__main__": main()