diff --git a/readme.md b/readme.md index fe28d19..34b67d9 100644 --- a/readme.md +++ b/readme.md @@ -28,6 +28,7 @@ Ejecuta el instalador directamente desde la terminal (usa bash, no zsh): curl -fsSL https://raw.githubusercontent.com/marcogll/mac_vntySet/main/vanity_setup.sh | bash ``` El script muestra un menú para elegir qué componentes instalar. +También puedes volver a ejecutarlo más adelante y elegir la opción `U` para actualizar todos los componentes provisionados por VanityOS Shell. ## 💻 Ejecución local También puedes clonar este repositorio y ejecutar el instalador de forma local: @@ -45,6 +46,7 @@ Cada ejecución genera un registro detallado en `.logs/vanity-YYYYmmdd-HHMMSS.lo | `A` | Instalación completa (recomendada). | Homebrew + stack Zsh + Docker CLI/Portainer/Lazydocker. | | `C` | Solo configura la terminal. | Homebrew + Zsh, Oh My Zsh, Oh My Posh, utilidades CLI. | | `D` | Solo herramientas de contenedores. | Homebrew + Docker CLI, Portainer, Lazydocker. | +| `U` | Actualiza la instalación existente. | Repite la instalación completa para asegurar versiones recientes. | | `Q` | Salir. | — | ## 🔧 Detalles de la configuración Zsh diff --git a/vanity_setup.sh b/vanity_setup.sh index e7b0b10..f03a9c3 100644 --- a/vanity_setup.sh +++ b/vanity_setup.sh @@ -65,14 +65,55 @@ install_homebrew() { brew update } +brew_ensure_formula() { + local formula="$1" + if brew list --formula "$formula" >/dev/null 2>&1; then + echo "✔︎ ${formula} ya está instalado. Omitiendo." + return + fi + + echo "➜ Instalando ${formula}…" + brew install "$formula" +} + +brew_ensure_cask() { + local cask="$1" + if brew list --cask "$cask" >/dev/null 2>&1; then + echo "✔︎ ${cask} ya está instalado. Omitiendo." + return + fi + + echo "➜ Instalando ${cask}…" + brew install --cask "$cask" +} + install_cli_dependencies() { echo "Instalando herramientas base de desarrollo…" - brew install zsh curl wget git jq yq node python go direnv yt-dlp ffmpeg zerotier-one speedtest-cli + local formulas=( + zsh + curl + wget + git + jq + yq + node + python + go + direnv + yt-dlp + ffmpeg + speedtest-cli + jandedobbeleer/oh-my-posh/oh-my-posh + ) + + for formula in "${formulas[@]}"; do + brew_ensure_formula "$formula" + done echo "Instalando Oh My Posh y fuentes Nerd Font…" brew tap homebrew/cask-fonts >/dev/null 2>&1 || true - brew install --cask --force font-meslo-lg-nerd-font - brew install jandedobbeleer/oh-my-posh/oh-my-posh + brew_ensure_cask font-meslo-lg-nerd-font + brew_ensure_cask zerotier-one } setup_media_dirs() { @@ -294,6 +335,7 @@ main_menu() { echo " A) Instalar TODO (recomendado)" echo " C) Instalar solo configuración ZSH" echo " D) Instalar Docker + Portainer + Lazydocker" + echo " U) Actualizar componentes instalados" echo " Q) Salir" echo "" local choice="" @@ -318,6 +360,12 @@ main_menu() { install_homebrew install_docker_stack ;; + U|u) + echo "Actualizando la instalación existente…" + install_homebrew + install_zsh_config + install_docker_stack + ;; Q|q) echo "Saliendo…" exit 0