Add cache argument for server command.

This commit is contained in:
Sergey Vartanov 2021-08-03 00:03:15 +03:00
parent be0420b53d
commit 0f7665d3fd
3 changed files with 17 additions and 3 deletions

View file

@ -226,7 +226,7 @@ if __name__ == "__main__":
elif options.command == "element": elif options.command == "element":
draw_element(options) draw_element(options)
elif options.command == "server": elif options.command == "server":
server.ui() server.ui(options)
elif options.command == "taginfo": elif options.command == "taginfo":
from roentgen.taginfo import write_taginfo_project_file from roentgen.taginfo import write_taginfo_project_file

View file

@ -14,6 +14,7 @@ class Handler(BaseHTTPRequestHandler):
def __init__(self, request, client_address, server): def __init__(self, request, client_address, server):
super().__init__(request, client_address, server) super().__init__(request, client_address, server)
self.cache: Path = Path("cache")
def write(self, message): def write(self, message):
if isinstance(message, bytes): if isinstance(message, bytes):
@ -35,7 +36,7 @@ class Handler(BaseHTTPRequestHandler):
if not png_path.exists(): if not png_path.exists():
if not svg_path.exists(): if not svg_path.exists():
tile = Tile(x, y, zoom) tile = Tile(x, y, zoom)
tile.draw(tile_path) tile.draw(tile_path, self.cache)
rasterize(svg_path, png_path) rasterize(svg_path, png_path)
if zoom != 18: if zoom != 18:
return return
@ -48,11 +49,12 @@ class Handler(BaseHTTPRequestHandler):
return return
def ui(): def ui(options):
server: Optional[HTTPServer] = None server: Optional[HTTPServer] = None
try: try:
port: int = 8080 port: int = 8080
server = HTTPServer(("", port), Handler) server = HTTPServer(("", port), Handler)
server.cache_path = Path(options.cache)
server.serve_forever() server.serve_forever()
logging.info(f"Server started on port {port}.") logging.info(f"Server started on port {port}.")
finally: finally:

View file

@ -31,9 +31,11 @@ def parse_options(args) -> argparse.Namespace:
subparser.add_parser("taginfo") subparser.add_parser("taginfo")
tile = subparser.add_parser("tile") tile = subparser.add_parser("tile")
element = subparser.add_parser("element") element = subparser.add_parser("element")
server = subparser.add_parser("server")
add_render_arguments(render) add_render_arguments(render)
add_tile_arguments(tile) add_tile_arguments(tile)
add_server_arguments(server)
element.add_argument("-n", "--node") element.add_argument("-n", "--node")
element.add_argument("-w", "--way") 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="<path>",
)
def add_render_arguments(render) -> None: def add_render_arguments(render) -> None:
"""Add arguments for render command.""" """Add arguments for render command."""
render.add_argument( render.add_argument(