diff --git a/ip_listener/cli.py b/ip_listener/cli.py index 8fe6ffb..8db0a00 100644 --- a/ip_listener/cli.py +++ b/ip_listener/cli.py @@ -6,6 +6,6 @@ from ip_listener.main import detect @click.command() @click.argument("domains", envvar="DOMAIN", nargs=-1) @click.argument("token", envvar="TOKEN") -@click.option("--read-only", envvar="READ_ONLY", default=False) -def run(domains, token): - detect(domains, token) +@click.option("--read-only/--write", envvar="READ_ONLY", default=False) +def run(domains, token, read_only): + detect(domains, token, read_only) diff --git a/ip_listener/main.py b/ip_listener/main.py index 10f3774..5474cc1 100644 --- a/ip_listener/main.py +++ b/ip_listener/main.py @@ -51,7 +51,10 @@ def _update_domain(domain, payload, token): return requests.put(url, data=json.dumps(payload), headers=headers) -def _update_domains(updated_domains, token): +def _update_domains(updated_domains, token, read_only): + if read_only: + return + with ThreadPoolExecutor(max_workers=10) as executor: futures = { executor.submit(_update_domain, domain, entries, token): domain @@ -71,7 +74,7 @@ def _update_domains(updated_domains, token): logger.info(f"Updated domain {domain}") -def detect(domains, token): +def detect(domains, token, read_only): ip = _get_ip() domain_data = _get_domain_data(domains, token) updated_domains = {}