Files
appfactory-tools/scripts/generate-catalog.sh
T
2026-05-28 08:37:34 +02:00

60 lines
1.2 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
DB_FILE="/opt/appfactory/data/appfactory/appfactory.db"
CATALOG_FILE="/opt/appfactory/apps/catalog.yml"
mkdir -p "$(dirname "$CATALOG_FILE")"
python3 - "$DB_FILE" "$CATALOG_FILE" <<'PY'
import sqlite3
import sys
from pathlib import Path
db_file = Path(sys.argv[1])
catalog_file = Path(sys.argv[2])
con = sqlite3.connect(db_file)
rows = con.execute("""
SELECT
id,
name,
language,
version,
status,
COALESCE(memory, ''),
COALESCE(cpus, '')
FROM apps
ORDER BY id
""").fetchall()
lines = ["apps:"]
for row in rows:
app_id, name, language, version, status, memory, cpus = row
lines.append("")
lines.append(f" - id: {app_id}")
lines.append(f" name: {name}")
lines.append(f" language: {language}")
lines.append(f" version: {version}")
lines.append(f" base_path: /apps/{app_id}")
lines.append(f" docs: /apps/{app_id}/docs")
lines.append(f" health: /apps/{app_id}/health")
lines.append(f" status: {status}")
if memory:
lines.append(f" memory: {memory}")
if cpus:
lines.append(f' cpus: "{cpus}"')
catalog_file.write_text(
"\n".join(lines) + "\n",
encoding="utf-8"
)
print(f"Generated: {catalog_file}")
PY