194663a379
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.
65 lines
1.9 KiB
Bash
65 lines
1.9 KiB
Bash
#!/usr/bin/env bash
|
|
# install_pnpm
|
|
# ------------
|
|
# Instala pnpm globalmente usando npm.
|
|
# Verifica que npm esté disponible antes de instalar.
|
|
# Idempotente: informa si pnpm ya está instalado.
|
|
#
|
|
# USO:
|
|
# source install_pnpm.sh
|
|
# install_pnpm
|
|
|
|
install_pnpm() {
|
|
echo "Instalando pnpm..."
|
|
echo ""
|
|
|
|
# Verificar si pnpm ya está instalado
|
|
if command -v pnpm &>/dev/null; then
|
|
local current_version
|
|
current_version="$(pnpm --version 2>/dev/null || echo "desconocida")"
|
|
echo "pnpm ya está instalado (versión: ${current_version})."
|
|
return 0
|
|
fi
|
|
|
|
# Verificar que npm esté disponible
|
|
if ! command -v npm &>/dev/null; then
|
|
echo "install_pnpm: npm no está instalado (requerido para instalar pnpm)" >&2
|
|
echo " Instala Node.js primero con install_nodejs" >&2
|
|
return 1
|
|
fi
|
|
|
|
local npm_version
|
|
npm_version="$(npm --version 2>/dev/null || echo "?")"
|
|
echo "npm detectado: ${npm_version}"
|
|
echo ""
|
|
|
|
echo "Instalando pnpm globalmente (npm install -g pnpm)..."
|
|
if ! npm install -g pnpm; then
|
|
echo "install_pnpm: falló la instalación de pnpm" >&2
|
|
echo " Intenta con sudo: sudo npm install -g pnpm" >&2
|
|
return 1
|
|
fi
|
|
|
|
# Verificar instalación
|
|
if ! command -v pnpm &>/dev/null; then
|
|
echo "install_pnpm: pnpm no está disponible después de la instalación" >&2
|
|
echo " Verifica que npm/bin esté en tu PATH" >&2
|
|
return 1
|
|
fi
|
|
|
|
local installed_version
|
|
installed_version="$(pnpm --version)"
|
|
echo ""
|
|
echo "pnpm instalado correctamente: ${installed_version}"
|
|
echo ""
|
|
echo "Comandos útiles:"
|
|
echo " pnpm install - Instalar dependencias"
|
|
echo " pnpm add <pkg> - Agregar paquete"
|
|
echo " pnpm run <cmd> - Ejecutar script"
|
|
}
|
|
|
|
# Ejecutar si se invoca directamente
|
|
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
|
|
install_pnpm "$@"
|
|
fi
|