Files
fn_registry/bash/functions/infra/install_volta.sh
T
egutierrez 194663a379 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.
2026-04-12 13:54:21 +02:00

101 lines
3.1 KiB
Bash

#!/usr/bin/env bash
# install_volta
# -------------
# Instala Volta — gestor de versiones de Node.js rápido y confiable.
# Usa el instalador oficial de get.volta.sh. Configura VOLTA_HOME y PATH
# en ~/.bashrc y ~/.zshrc.
#
# USO:
# source install_volta.sh
# install_volta
install_volta() {
echo "Instalando Volta (gestor de versiones Node.js)..."
echo ""
# Verificar si Volta ya está instalado
if command -v volta &>/dev/null; then
local current_version
current_version="$(volta --version 2>/dev/null || echo "desconocida")"
echo "Volta ya está instalado (versión: ${current_version})."
return 0
fi
# Verificar curl
if ! command -v curl &>/dev/null; then
echo "install_volta: curl no está instalado (requerido)" >&2
echo " Instálalo con: sudo apt install curl" >&2
return 1
fi
echo "Descargando e instalando Volta (instalador oficial)..."
if ! curl https://get.volta.sh | bash; then
echo "install_volta: falló la instalación de Volta" >&2
echo " Verifica tu conexión a internet" >&2
return 1
fi
echo ""
# Configurar variables de entorno
local volta_home="$HOME/.volta"
export VOLTA_HOME="$volta_home"
export PATH="$volta_home/bin:$PATH"
# Configurar en ~/.bashrc
if ! grep -q "VOLTA_HOME" "$HOME/.bashrc" 2>/dev/null; then
{
echo ""
echo "# Volta configuration"
echo 'export VOLTA_HOME="$HOME/.volta"'
echo 'export PATH="$VOLTA_HOME/bin:$PATH"'
} >> "$HOME/.bashrc"
echo "Variables añadidas a ~/.bashrc"
else
echo "Variables ya configuradas en ~/.bashrc"
fi
# Configurar en ~/.zshrc si existe
if [[ -f "$HOME/.zshrc" ]]; then
if ! grep -q "VOLTA_HOME" "$HOME/.zshrc" 2>/dev/null; then
{
echo ""
echo "# Volta configuration"
echo 'export VOLTA_HOME="$HOME/.volta"'
echo 'export PATH="$VOLTA_HOME/bin:$PATH"'
} >> "$HOME/.zshrc"
echo "Variables añadidas a ~/.zshrc"
fi
fi
echo ""
# Verificar instalación
if command -v volta &>/dev/null; then
local installed_version
installed_version="$(volta --version)"
echo "Volta instalado correctamente: ${installed_version}"
elif [[ -f "$HOME/.volta/bin/volta" ]]; then
echo "Volta instalado en ${HOME}/.volta/bin pero no está en PATH actual."
echo " Ejecuta: source ~/.bashrc (o abre una nueva terminal)"
else
echo "install_volta: Volta no está disponible después de la instalación" >&2
return 1
fi
echo ""
echo "Próximos pasos:"
echo " 1. source ~/.bashrc - Recargar shell"
echo " 2. volta install node - Instalar Node.js"
echo " 3. volta install pnpm - Instalar pnpm"
echo ""
echo "Comandos útiles:"
echo " volta install node@20 - Instalar Node.js v20"
echo " volta list - Ver herramientas instaladas"
}
# Ejecutar si se invoca directamente
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
install_volta "$@"
fi