feat: add bash infra installer and diagnostic functions
10 funciones Bash del dominio infra: instaladores de herramientas de desarrollo (install_go, install_nodejs, install_pnpm, install_python312, install_uv, install_volta, install_wails), diagnostico del sistema (analyze_disk_space, detect_wsl, list_listening_ports). Automatizan la configuracion del entorno de desarrollo en Linux/WSL.
This commit is contained in:
@@ -0,0 +1,88 @@
|
||||
#!/usr/bin/env bash
|
||||
# install_uv
|
||||
# ----------
|
||||
# Instala uv — gestor de paquetes Python ultra-rápido escrito en Rust.
|
||||
# Usa el instalador oficial de astral.sh. Configura PATH en ~/.bashrc y ~/.zshrc.
|
||||
#
|
||||
# USO:
|
||||
# source install_uv.sh
|
||||
# install_uv
|
||||
|
||||
install_uv() {
|
||||
echo "Instalando uv (gestor de paquetes Python)..."
|
||||
echo ""
|
||||
|
||||
# Verificar si uv ya está instalado
|
||||
if command -v uv &>/dev/null; then
|
||||
local current_version
|
||||
current_version="$(uv --version 2>/dev/null || echo "desconocida")"
|
||||
echo "uv ya está instalado (versión: ${current_version})."
|
||||
return 0
|
||||
fi
|
||||
|
||||
# Verificar curl
|
||||
if ! command -v curl &>/dev/null; then
|
||||
echo "install_uv: curl no está instalado (requerido)" >&2
|
||||
echo " Instálalo con: sudo apt install curl" >&2
|
||||
return 1
|
||||
fi
|
||||
|
||||
echo "Descargando e instalando uv (instalador oficial astral.sh)..."
|
||||
if ! curl -LsSf https://astral.sh/uv/install.sh | sh; then
|
||||
echo "install_uv: falló la instalación de uv" >&2
|
||||
echo " Verifica tu conexión a internet y permisos" >&2
|
||||
return 1
|
||||
fi
|
||||
|
||||
echo ""
|
||||
|
||||
# Configurar PATH en ~/.bashrc
|
||||
if ! grep -q ".cargo/bin" "$HOME/.bashrc" 2>/dev/null; then
|
||||
{
|
||||
echo ""
|
||||
echo "# uv and cargo binaries"
|
||||
echo 'export PATH="$HOME/.cargo/bin:$PATH"'
|
||||
} >> "$HOME/.bashrc"
|
||||
echo "PATH añadido a ~/.bashrc"
|
||||
else
|
||||
echo "PATH ya configurado en ~/.bashrc"
|
||||
fi
|
||||
|
||||
# Configurar PATH en ~/.zshrc si existe
|
||||
if [[ -f "$HOME/.zshrc" ]]; then
|
||||
if ! grep -q ".cargo/bin" "$HOME/.zshrc" 2>/dev/null; then
|
||||
{
|
||||
echo ""
|
||||
echo "# uv and cargo binaries"
|
||||
echo 'export PATH="$HOME/.cargo/bin:$PATH"'
|
||||
} >> "$HOME/.zshrc"
|
||||
echo "PATH añadido a ~/.zshrc"
|
||||
fi
|
||||
fi
|
||||
|
||||
# Cargar PATH en la sesión actual
|
||||
export PATH="$HOME/.cargo/bin:$PATH"
|
||||
|
||||
echo ""
|
||||
|
||||
# Verificar instalación
|
||||
if ! command -v uv &>/dev/null; then
|
||||
echo "uv instalado pero no está en el PATH actual."
|
||||
echo " Ejecuta: source ~/.bashrc (o abre una nueva terminal)"
|
||||
else
|
||||
local installed_version
|
||||
installed_version="$(uv --version)"
|
||||
echo "uv instalado correctamente: ${installed_version}"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "Comandos útiles de uv:"
|
||||
echo " uv venv - Crear entorno virtual"
|
||||
echo " uv pip install <package> - Instalar paquete"
|
||||
echo " uv pip sync requirements.txt - Sincronizar dependencias"
|
||||
}
|
||||
|
||||
# Ejecutar si se invoca directamente
|
||||
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
|
||||
install_uv "$@"
|
||||
fi
|
||||
Reference in New Issue
Block a user