Files
fn_registry/bash/functions/infra/docker_cp_file.sh
T
egutierrez 54be36dd63 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>
2026-03-28 23:23:30 +01:00

34 lines
1.1 KiB
Bash

# docker_cp_file
# --------------
# Copia un archivo local a un contenedor Docker y verifica que el tamaño coincide.
# Imprime JSON con local_size y remote_size a stdout si la copia es exitosa.
# Sale con exit code 1 si docker cp falla o si los tamaños no coinciden.
#
# USO (sourced):
# source docker_cp_file.sh
# result=$(docker_cp_file /ruta/local.db metabase /dest/path.db)
docker_cp_file() {
local local_path="$1"
local container_name="$2"
local dest_path="$3"
if ! docker cp "$local_path" "${container_name}:${dest_path}" 2>/dev/null; then
echo "docker_cp_file: fallo al copiar '$local_path' a '${container_name}:${dest_path}'" >&2
return 1
fi
local local_size
local_size=$(stat -c%s "$local_path")
local remote_size
remote_size=$(docker exec "$container_name" stat -c%s "$dest_path" 2>/dev/null || echo "-1")
if [ "$local_size" != "$remote_size" ]; then
echo "docker_cp_file: tamaños no coinciden (local=${local_size}, remoto=${remote_size})" >&2
return 1
fi
printf '{"local_size":%s,"remote_size":%s}' "$local_size" "$remote_size"
}