feat: Add an update option to the script and ensure Homebrew packages are installed only if missing.

This commit is contained in:
Marco Gallegos
2025-11-21 08:21:48 -06:00
parent 1502e4c2dc
commit e18adc35bc
2 changed files with 53 additions and 3 deletions

View File

@@ -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

View File

@@ -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