Files
fn_registry/bash/functions/infra/uv_add_packages.sh
T
egutierrez d7f2c00d7b feat: externalize apps/analysis to Gitea repos, add analysis table
- Migration 007: repo_url on apps table + analysis table with FTS5
- Analysis struct, parser, CRUD, validation, hash computation
- Selective purge: remote-only apps/analysis preserved across fn index
- CLI: fn app list/clone/pull, fn analysis list/clone/pull
- search/show/list now include analysis results
- Apps removed from git tracking (content lives in Gitea repos)
- .gitkeep for apps/ and analysis/ dirs
- Bash functions: jupyter analysis pipeline, shell utilities
- Browser domain: CDP functions moved from infra to browser

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-01 04:23:51 +02:00

36 lines
1.0 KiB
Bash

# uv_add_packages
# -----------------
# Instala paquetes Python en un proyecto con uv add.
# Inicializa pyproject.toml si no existe.
# Fallback a pip install si uv no esta disponible.
#
# USO (sourced):
# source uv_add_packages.sh
# uv_add_packages /path/to/project jupyter jupyterlab pandas
uv_add_packages() {
local project_dir="$1"
shift
local packages=("$@")
if [ ${#packages[@]} -eq 0 ]; then
echo "uv_add_packages: se requiere al menos un paquete" >&2
return 1
fi
if [ ! -d "$project_dir/.venv" ]; then
echo "uv_add_packages: no existe .venv en $project_dir — ejecuta init_uv_venv primero" >&2
return 1
fi
if command -v uv &>/dev/null; then
# Inicializar pyproject.toml si no existe
if [ ! -f "$project_dir/pyproject.toml" ]; then
(cd "$project_dir" && uv init 2>/dev/null) || true
fi
(cd "$project_dir" && uv add "${packages[@]}" 2>&1)
else
"$project_dir/.venv/bin/pip" install "${packages[@]}" 2>&1
fi
}