Source code for dyndns.cli

"""Command line interface for the command dyndns-debug"""

from __future__ import annotations

import argparse

from dyndns import __version__
from dyndns.environment import ConfiguredEnvironment
from dyndns.webapp import create_app


[docs] def get_argparser() -> argparse.ArgumentParser: parser = argparse.ArgumentParser() parser.add_argument( "-v", "--version", action="version", version=__version__, ) parser.add_argument( "-c", "--config", ) subcommand = parser.add_subparsers( dest="subcommand", help="Subcommand", ) subcommand.required = True serve_parser: argparse.ArgumentParser = subcommand.add_parser("serve") serve_parser.add_argument( "-p", "--port", type=int, default=54321, ) subcommand.add_parser("check") delete_parser = subcommand.add_parser("delete") delete_parser.add_argument("fqdn", help="lol") subcommand.add_parser("config") return parser
[docs] def main() -> None: args: argparse.Namespace = get_argparser().parse_args() env = ConfiguredEnvironment(args.config) if args.subcommand == "serve": print(f"Running the webapp on port {args.port}") create_app(env).run(debug=False, port=args.port) elif args.subcommand == "check": print("check") env.check() elif args.subcommand == "config": env.print_config() elif args.subcommand == "delete": print("delete") else: print(f"Running the webapp on port {args.port}") create_app(env).run(debug=False, port=args.port)