Generate app ports in catalog and gateway
This commit is contained in:
@@ -29,16 +29,42 @@ cat > "$CADDY_FILE" <<EOF_CADDY
|
||||
EOF_CADDY
|
||||
|
||||
if [ -f "$CATALOG_FILE" ]; then
|
||||
awk '
|
||||
/^[[:space:]]*-[[:space:]]id:/ {
|
||||
app=$3
|
||||
python3 - "$CATALOG_FILE" "$CADDY_FILE" <<'PY'
|
||||
import sys
|
||||
|
||||
print " handle_path /apps/" app "/* {"
|
||||
print " reverse_proxy " app ":8000"
|
||||
print " }"
|
||||
print ""
|
||||
}
|
||||
' "$CATALOG_FILE" >> "$CADDY_FILE"
|
||||
catalog_file = sys.argv[1]
|
||||
caddy_file = sys.argv[2]
|
||||
|
||||
apps = []
|
||||
current = None
|
||||
|
||||
with open(catalog_file, "r", encoding="utf-8") as f:
|
||||
for raw in f:
|
||||
stripped = raw.strip()
|
||||
|
||||
if stripped.startswith("- id:"):
|
||||
if current:
|
||||
apps.append(current)
|
||||
current = {"id": stripped.split(":", 1)[1].strip()}
|
||||
elif current and ":" in stripped:
|
||||
key, value = stripped.split(":", 1)
|
||||
current[key.strip()] = value.strip().strip('"')
|
||||
|
||||
if current:
|
||||
apps.append(current)
|
||||
|
||||
with open(caddy_file, "a", encoding="utf-8") as f:
|
||||
for app in apps:
|
||||
app_id = app.get("id")
|
||||
port = app.get("container_port") or app.get("port") or "8000"
|
||||
|
||||
if not app_id:
|
||||
continue
|
||||
|
||||
f.write(f" handle_path /apps/{app_id}/* {{\n")
|
||||
f.write(f" reverse_proxy {app_id}:{port}\n")
|
||||
f.write(" }\n\n")
|
||||
PY
|
||||
fi
|
||||
|
||||
cat >> "$CADDY_FILE" <<EOF_CADDY
|
||||
|
||||
Reference in New Issue
Block a user