generate outside generated
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
This commit is contained in:
@@ -32,7 +32,7 @@ python build.py --all # -> all rooms
|
||||
./ctrl/logs.sh <room> # View logs
|
||||
|
||||
# Bare-metal dev (without Docker)
|
||||
cd gen/standalone && .venv/bin/python run.py
|
||||
cd gen/standalone && python run.py
|
||||
```
|
||||
|
||||
## Adding a New Room
|
||||
@@ -48,4 +48,4 @@ python build.py --cfg myroom
|
||||
cd gen/myroom/soleprint && docker compose up
|
||||
```
|
||||
|
||||
Or use the generation UI at `/generate`.
|
||||
Or use the generation UI: `python -m http.server 8080` in `spr/` and visit `/generate.html`.
|
||||
|
||||
1
build.py
1
build.py
@@ -280,7 +280,6 @@ def build_soleprint(output_dir: Path, room: str):
|
||||
"main.py",
|
||||
"run.py",
|
||||
"index.html",
|
||||
"generate.html",
|
||||
"requirements.txt",
|
||||
"Dockerfile",
|
||||
]:
|
||||
|
||||
@@ -296,72 +296,6 @@ def station_route(path: str):
|
||||
return {"system": "station", "path": path}
|
||||
|
||||
|
||||
# === Generate ===
|
||||
|
||||
|
||||
@app.get("/generate")
|
||||
def generate_ui():
|
||||
"""Serve the generation UI."""
|
||||
from fastapi.responses import FileResponse
|
||||
|
||||
return FileResponse(SPR_ROOT / "generate.html")
|
||||
|
||||
|
||||
@app.post("/api/generate")
|
||||
def generate_config(req: dict):
|
||||
"""Generate a config.json for a new room."""
|
||||
config = load_config()
|
||||
hub_port = config.get("framework", {}).get("hub_port", 12000)
|
||||
|
||||
framework = req.get("framework", {})
|
||||
systems = req.get("systems", {})
|
||||
managed = req.get("managed")
|
||||
|
||||
result = {
|
||||
"framework": {
|
||||
"name": framework.get("name", "soleprint"),
|
||||
"slug": framework.get("name", "soleprint").lower().replace(" ", "-"),
|
||||
"version": "0.1.0",
|
||||
"hub_port": hub_port,
|
||||
},
|
||||
"systems": [
|
||||
{
|
||||
"key": "data_flow",
|
||||
"name": systems.get("artery", "artery"),
|
||||
},
|
||||
{
|
||||
"key": "documentation",
|
||||
"name": systems.get("atlas", "atlas"),
|
||||
},
|
||||
{
|
||||
"key": "execution",
|
||||
"name": systems.get("station", "station"),
|
||||
},
|
||||
],
|
||||
}
|
||||
|
||||
if managed and managed.get("name"):
|
||||
result["managed"] = {"name": managed["name"], "repos": managed.get("repos", {})}
|
||||
|
||||
return {"config": result, "room_name": req.get("room_name")}
|
||||
|
||||
|
||||
@app.post("/api/generate/preview")
|
||||
def generate_preview(req: dict):
|
||||
"""Preview the generated folder structure."""
|
||||
room = req.get("room_name") or "room"
|
||||
fw = req.get("framework", {}).get("name") or "soleprint"
|
||||
managed = req.get("managed")
|
||||
|
||||
lines = [f'<span class="folder">gen/{room}/</span>']
|
||||
if managed and managed.get("name"):
|
||||
lines.append(f' <span class="folder">{managed["name"]}/</span>')
|
||||
lines.append(' <span class="folder">link/</span>')
|
||||
lines.append(f' <span class="folder">{fw}/</span>')
|
||||
|
||||
return {"tree": "\n".join(lines)}
|
||||
|
||||
|
||||
# === Main ===
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user