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,75 @@
|
||||
#!/usr/bin/env bash
|
||||
# install_nodejs
|
||||
# --------------
|
||||
# Instala Node.js en Linux usando nvm (Node Version Manager).
|
||||
# Instala nvm si no está presente, luego instala la versión de Node indicada
|
||||
# y la configura como default.
|
||||
#
|
||||
# USO:
|
||||
# source install_nodejs.sh
|
||||
# install_nodejs [version]
|
||||
#
|
||||
# ARGUMENTOS:
|
||||
# version Versión principal de Node.js (default: 20)
|
||||
|
||||
install_nodejs() {
|
||||
local node_version="${1:-20}"
|
||||
|
||||
echo "Instalando Node.js v${node_version} mediante nvm..."
|
||||
echo ""
|
||||
|
||||
# Informar si Node ya está instalado
|
||||
if command -v node &>/dev/null; then
|
||||
local current_version
|
||||
current_version="$(node --version)"
|
||||
echo "Node.js ya está instalado: ${current_version}"
|
||||
echo "Continuando con la instalación/actualización..."
|
||||
fi
|
||||
|
||||
# Instalar nvm si no está presente
|
||||
if [[ -d "$HOME/.nvm" ]]; then
|
||||
echo "nvm ya está instalado."
|
||||
export NVM_DIR="$HOME/.nvm"
|
||||
# shellcheck disable=SC1091
|
||||
[[ -s "$NVM_DIR/nvm.sh" ]] && source "$NVM_DIR/nvm.sh"
|
||||
else
|
||||
echo "Descargando e instalando nvm..."
|
||||
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
|
||||
|
||||
export NVM_DIR="$HOME/.nvm"
|
||||
# shellcheck disable=SC1091
|
||||
[[ -s "$NVM_DIR/nvm.sh" ]] && source "$NVM_DIR/nvm.sh"
|
||||
echo "nvm instalado correctamente."
|
||||
fi
|
||||
|
||||
# Verificar que nvm esté disponible
|
||||
if ! command -v nvm &>/dev/null; then
|
||||
echo "install_nodejs: nvm no está disponible después de la instalación" >&2
|
||||
echo " Ejecuta: source ~/.bashrc (o abre una nueva terminal)" >&2
|
||||
return 1
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "Instalando Node.js v${node_version}..."
|
||||
nvm install "$node_version"
|
||||
nvm use "$node_version"
|
||||
nvm alias default "$node_version"
|
||||
|
||||
local installed_node
|
||||
local installed_npm
|
||||
installed_node="$(node --version)"
|
||||
installed_npm="$(npm --version)"
|
||||
|
||||
echo ""
|
||||
echo "Node.js instalado correctamente:"
|
||||
echo " Node.js: ${installed_node}"
|
||||
echo " npm: ${installed_npm}"
|
||||
echo ""
|
||||
echo "Si es una instalación nueva, reinicia tu terminal o ejecuta:"
|
||||
echo " source ~/.bashrc # o ~/.zshrc según tu shell"
|
||||
}
|
||||
|
||||
# Ejecutar si se invoca directamente
|
||||
if [[ "${BASH_SOURCE[0]}" == "${0}" ]]; then
|
||||
install_nodejs "$@"
|
||||
fi
|
||||
Reference in New Issue
Block a user