1
0
forked from clan/clan-core

integrate webserver into cli

integrate webserver into cli
This commit is contained in:
Jörg Thalheim 2023-08-23 17:17:34 +02:00
parent 7f6f147d84
commit acc648fc6b
5 changed files with 25 additions and 10 deletions

View File

@ -0,0 +1,7 @@
from fastapi import FastAPI
from .routers import health, root
app = FastAPI()
app.include_router(health.router)
app.include_router(root.router)

View File

@ -0,0 +1,8 @@
from fastapi import APIRouter
router = APIRouter()
@router.get("/health")
async def health() -> str:
return "OK"

View File

@ -0,0 +1,9 @@
from fastapi import APIRouter, Response
router = APIRouter()
@router.get("/")
async def root() -> Response:
body = "<html><body><h1>Welcome</h1></body></html>"
return Response(content=body, media_type="text/html")

View File

@ -4,18 +4,9 @@ import urllib.request
import webbrowser
from threading import Thread
from fastapi import FastAPI
# XXX: can we dynamically load this using nix develop?
from uvicorn import run
app = FastAPI()
@app.get("/health")
async def read_root() -> str:
return "OK"
def defer_open_browser(base_url: str) -> None:
for i in range(5):
@ -33,7 +24,7 @@ def start_server(args: argparse.Namespace) -> None:
target=defer_open_browser, args=(f"http://[{args.host}]:{args.port}",)
).start()
run(
"clan_cli.webui.server:app",
"clan_cli.webui.app:app",
host=args.host,
port=args.port,
log_level=args.log_level,