From 0f7665d3fdcf18832ebc2c8833d717f26c6eca24 Mon Sep 17 00:00:00 2001 From: Sergey Vartanov Date: Tue, 3 Aug 2021 00:03:15 +0300 Subject: [PATCH] Add cache argument for server command. --- roentgen.py | 2 +- roentgen/server.py | 6 ++++-- roentgen/ui.py | 12 ++++++++++++ 3 files changed, 17 insertions(+), 3 deletions(-) diff --git a/roentgen.py b/roentgen.py index 68a3908..9bc8ec5 100644 --- a/roentgen.py +++ b/roentgen.py @@ -226,7 +226,7 @@ if __name__ == "__main__": elif options.command == "element": draw_element(options) elif options.command == "server": - server.ui() + server.ui(options) elif options.command == "taginfo": from roentgen.taginfo import write_taginfo_project_file diff --git a/roentgen/server.py b/roentgen/server.py index e24f5cc..96769a3 100644 --- a/roentgen/server.py +++ b/roentgen/server.py @@ -14,6 +14,7 @@ class Handler(BaseHTTPRequestHandler): def __init__(self, request, client_address, server): super().__init__(request, client_address, server) + self.cache: Path = Path("cache") def write(self, message): if isinstance(message, bytes): @@ -35,7 +36,7 @@ class Handler(BaseHTTPRequestHandler): if not png_path.exists(): if not svg_path.exists(): tile = Tile(x, y, zoom) - tile.draw(tile_path) + tile.draw(tile_path, self.cache) rasterize(svg_path, png_path) if zoom != 18: return @@ -48,11 +49,12 @@ class Handler(BaseHTTPRequestHandler): return -def ui(): +def ui(options): server: Optional[HTTPServer] = None try: port: int = 8080 server = HTTPServer(("", port), Handler) + server.cache_path = Path(options.cache) server.serve_forever() logging.info(f"Server started on port {port}.") finally: diff --git a/roentgen/ui.py b/roentgen/ui.py index f902211..8764edc 100644 --- a/roentgen/ui.py +++ b/roentgen/ui.py @@ -31,9 +31,11 @@ def parse_options(args) -> argparse.Namespace: subparser.add_parser("taginfo") tile = subparser.add_parser("tile") element = subparser.add_parser("element") + server = subparser.add_parser("server") add_render_arguments(render) add_tile_arguments(tile) + add_server_arguments(server) element.add_argument("-n", "--node") element.add_argument("-w", "--way") @@ -74,6 +76,16 @@ def add_tile_arguments(tile) -> None: ) +def add_server_arguments(tile) -> None: + """Add arguments for server command.""" + tile.add_argument( + "--cache", + help="path for temporary OSM files", + default="cache", + metavar="", + ) + + def add_render_arguments(render) -> None: """Add arguments for render command.""" render.add_argument(