1
Fork 0

Accept values from arguments

This commit is contained in:
Jake Howard 2023-11-02 21:59:49 +00:00
parent 81ac7e94fa
commit 09113a4777
Signed by: jake
GPG key ID: 57AFB45680EDD477

View file

@ -6,13 +6,11 @@ from pathlib import Path
from typing import TypedDict from typing import TypedDict
from collections import defaultdict from collections import defaultdict
from urllib.request import urlopen from urllib.request import urlopen
import argparse
import json import json
TRAEFIK_HOST_RE = re.compile(r"Host\(`([a-z0-9\.-]+)`\)") TRAEFIK_HOST_RE = re.compile(r"Host\(`([a-z0-9\.-]+)`\)")
CONFIG_FILE = Path.cwd() / "config.toml"
OUTPUT_FILE = Path.cwd() / "map.txt"
class Route(NamedTuple): class Route(NamedTuple):
name: str name: str
@ -79,7 +77,14 @@ def get_dokku_routes(dokku_exporter_url: str, dokku_route: str):
def main(): def main():
config: Config = tomllib.loads(CONFIG_FILE.read_text()) parser = argparse.ArgumentParser()
parser.add_argument("--config", "-c", default="./config.toml", type=Path, help="Config file. Default: %(default)s")
parser.add_argument("--output", "-o", type=Path, default="./map.txt", help="Output file. Default: %(default)s")
args = parser.parse_args()
config: Config = tomllib.loads(args.config.read_text())
routes = [] routes = []
for source in config["source"]: for source in config["source"]:
@ -96,7 +101,7 @@ def main():
for route in routes: for route in routes:
grouped_routes[route.hostname, route.destination].add(route.name) grouped_routes[route.hostname, route.destination].add(route.name)
with OUTPUT_FILE.open("w", buffering=1024 * 1024) as f: with args.output.open("w", buffering=1024 * 1024) as f:
for (hostname, destination), names in sorted(grouped_routes.items()): for (hostname, destination), names in sorted(grouped_routes.items()):
print(f"{hostname}\t{destination}; # {', '.join(names)}", file=f) print(f"{hostname}\t{destination}; # {', '.join(names)}", file=f)