docs: CLAUDE.md actualizado con fn run, tipos Go en functions/, bash functions

Documentación de fn run para todos los lenguajes, nueva ubicación de tipos Go,
sección de uso por agentes. Añadidas funciones Bash del registry (shell, infra,
core, pipelines).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-03-28 23:23:30 +01:00
parent 72c572e1ea
commit 54be36dd63
11 changed files with 438 additions and 4 deletions
@@ -0,0 +1,65 @@
---
name: setup_metabase_volume
kind: pipeline
lang: bash
domain: pipelines
version: "1.0.0"
purity: impure
signature: "setup_metabase_volume([registry_db_path: string], [container_name: string], [dest_path: string]) -> void"
description: "Copia registry.db al contenedor Docker de Metabase verificando existencia del archivo, disponibilidad de docker, estado del contenedor y coincidencia de tamaños. Todos los argumentos son opcionales con defaults razonables."
tags: [metabase, docker, setup, launcher, pipeline, bash, infra]
uses_functions:
- assert_file_exists_bash_shell
- assert_command_exists_bash_shell
- assert_docker_container_running_bash_infra
- docker_cp_file_bash_infra
uses_types: []
returns: []
returns_optional: false
error_type: "error_go_core"
imports: []
tested: false
tests: []
test_file_path: ""
file_path: "bash/functions/pipelines/setup_metabase_volume.sh"
---
## Ejemplo
```bash
# Con defaults
./functions/pipelines/setup_metabase_volume.sh
# Con argumentos explícitos
./functions/pipelines/setup_metabase_volume.sh \
/home/lucas/fn_registry/registry.db \
metabase \
/registry.db
```
## Flujo
1. `assert_file_exists` — verifica que `registry.db` existe localmente y obtiene su tamaño
2. `assert_command_exists` — verifica que `docker` está disponible en PATH
3. `assert_docker_container_running` — verifica que el contenedor destino está activo; si falla, muestra lista de contenedores activos
4. `docker_cp_file` — ejecuta `docker cp` y verifica que los tamaños local y remoto coinciden
## Notas
El pipeline usa `set -euo pipefail` — cualquier fallo en una función individual detiene la ejecución.
Las funciones individuales se sourcean desde sus rutas en el registry, relativas a `REGISTRY_ROOT` detectado automáticamente desde la ubicación del script.
Defaults:
- `REGISTRY_DB_PATH`: `/home/lucas/fn_registry/registry.db`
- `CONTAINER_NAME`: `metabase`
- `DEST_PATH`: `/registry.db`
Nota de persistencia: `docker cp` copia al contenedor en ejecución. Si el contenedor se reinicia, el archivo se pierde. Para persistencia real, montar el directorio como volumen en docker-compose:
```yaml
volumes:
- /home/lucas/fn_registry:/fn_registry:ro
```
Y usar `--registry-db-path /fn_registry/registry.db`.