29 lines
852 B
Python
29 lines
852 B
Python
import sys
|
|
import argparse
|
|
import asyncio
|
|
|
|
from .testdata import Testdata
|
|
|
|
def parse_args(args: list[str]):
|
|
parser = argparse.ArgumentParser()
|
|
parser.add_argument('-c', '--config', type=argparse.FileType('r'), default='./config.json', help='Path to config file in JSON format.')
|
|
parser.add_argument('-l', '--listen', type=str, default='0.0.0.0', help='IP on which to listen.')
|
|
parser.add_argument('-p', '--port', type=int, default='8080', help='Port on which to serve the webserver.')
|
|
|
|
return parser.parse_args(args)
|
|
|
|
|
|
def run(argv: list[str]) -> None:
|
|
# Parse command-line parameters
|
|
args = parse_args(argv)
|
|
|
|
# Load Config
|
|
config = Testdata.Config.model_validate_json(args.config.read())
|
|
|
|
# Run webserver
|
|
asyncio.run(Testdata(config).run(args.listen, args.port))
|
|
|
|
|
|
def main() -> None:
|
|
run(sys.argv[1:])
|