Files
fn_registry/python/functions/pipelines/regenerate_app_icons.md
T

2.4 KiB

name, kind, lang, domain, version, purity, signature, description, tags, uses_functions, uses_types, returns, returns_optional, error_type, imports, params, output, tested, tests, test_file_path, file_path
name kind lang domain version purity signature description tags uses_functions uses_types returns returns_optional error_type imports params output tested tests test_file_path file_path
regenerate_app_icons pipeline py pipelines 1.0.0 impure def regenerate_app_icons(only: list[str] | None = None) -> dict Escanea todas las apps C++ del registry, lee el bloque `icon: {phosphor, accent}` de cada app.md y regenera el appicon.ico via generate_app_icon. Reemplaza el script ad-hoc dev/gen_app_icons.py.
cpp-windows
icon
phosphor
batch
generate_app_icon_py_infra
false error_go_core
os
sys
pathlib
typing
yaml
name desc
only Lista opcional de nombres de app (campo `name` del frontmatter) a procesar. Si None, regenera todas las apps C++ con icon: declarado.
dict {ok: [name], skipped: [{name, reason}], failed: [{name, error}]} false
python/functions/pipelines/regenerate_app_icons.py

Ejemplo

# Regenerar todas las apps C++ con icon: declarado
./fn run regenerate_app_icons

# Solo una app
./fn run regenerate_app_icons chart_demo

# Varias apps
./fn run regenerate_app_icons chart_demo registry_dashboard
import sys
sys.path.insert(0, "python/functions")
from pipelines.regenerate_app_icons import regenerate_app_icons

result = regenerate_app_icons()
print(f"OK: {len(result['ok'])}, FAIL: {len(result['failed'])}")

Bloque icon: esperado en app.md:

icon:
  phosphor: "chart-bar"
  accent: "#0ea5e9"

Cuando usarla

Cuando anades una app C++ nueva (anades icon: a su app.md y corres el pipeline), cambias el color/glyph de una app existente, o pulleas cambios de iconos desde otra rama. Antes de redeploy_cpp_app_windows para que el .exe lleve el icono actualizado.

Gotchas

  • Sobreescribe appicon.ico sin warning — igual que generate_app_icon. Hacer backup si necesitas preservar version anterior.
  • Requiere sources/phosphor-core/: clonar con git clone --depth=1 https://github.com/phosphor-icons/core.git sources/phosphor-core si no existe.
  • Solo procesa apps con lang: cpp en frontmatter — apps Go/Python se ignoran aunque tengan icon:.
  • Apps sin icon: se reportan en skipped, no son error. Util para detectar apps C++ a las que falta declarar el icono.
  • No invalida el cache de iconos de Windows — si Explorer no muestra el icono nuevo tras redeploy: ie4uinit.exe -show o reiniciar Explorer.