jcloude/libs/fc_cli/fc/main.py
2025-12-23 19:17:16 +08:00

31 lines
841 B
Python

import json
import typer
from fc.authentication.login import session_file_path
from fc.authentication.session import CloudSession
from fc.commands.auth import auth
from fc.commands.deploy import deploy
from fc.commands.server import server
from fc.commands.sites import sites
app = typer.Typer(help="FC CLI")
@app.callback(invoke_without_command=True)
def init_session(ctx: typer.Context):
"""Initialize CloudSession from saved session file, if present."""
try:
with open(session_file_path, "r") as f:
data = json.load(f)
ctx.obj = CloudSession(session_id=data["sid"]) # type: ignore[assignment]
except Exception:
# No session available yet; auth commands can create one.
pass
app.add_typer(server, name="server")
app.add_typer(auth, name="auth")
app.add_typer(deploy, name="deploy")
app.add_typer(sites, name="sites")