bf1efb2099
- 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>
36 lines
1.0 KiB
Bash
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
|
|
}
|