Update vanity_setup.sh

This commit is contained in:
Marco Gallegos
2025-11-19 19:30:01 -06:00
committed by GitHub
parent d5cf4cddd1
commit 4ae26b8fa7

View File

@@ -1,68 +1,50 @@
#!/usr/bin/env bash #!/usr/bin/env bash
set -e set -e
# ============================================== clear
# HEADER
# ==============================================
header() {
echo "" echo ""
echo "==============================================" echo "=============================================="
echo " V A N I T Y S H E L L" echo " V A N I T Y S H E L L"
echo " macOS Development Installer" echo " macOS Development Installer"
echo "==============================================" echo "=============================================="
echo "" echo ""
}
# ============================================== echo "Selecciona una opción:"
# PROGRESO VISUAL echo " A) Instalar TODO (recomendado)"
# ============================================== echo " C) Instalar solo configuración ZSH"
progress() { echo " D) Instalar Docker + Portainer + Lazydocker"
local task="$1" echo " Q) Salir"
echo "$task" echo ""
for i in 10 25 40 55 70 85 100; do read -p "Opción [A/C/D/Q]: " choice
printf " [%3s%%]\r" "$i" choice=${choice:-A}
sleep 0.06
done
printf " [100%%] ✓ Completado\n\n"
}
# ==============================================
# INSTALACIÓN REAL
# ==============================================
install_everything() {
# ------------------------------------------------ install_homebrew() {
# Homebrew
# ------------------------------------------------
progress "Instalando Homebrew"
if ! command -v brew >/dev/null 2>&1; then if ! command -v brew >/dev/null 2>&1; then
echo "Instalando Homebrew…"
NONINTERACTIVE=1 /bin/bash -c \ NONINTERACTIVE=1 /bin/bash -c \
"$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zprofile echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zprofile
eval "$(/opt/homebrew/bin/brew shellenv)" eval "$(/opt/homebrew/bin/brew shellenv)"
else
echo "Homebrew ya está instalado."
fi fi
brew update brew update
}
# ------------------------------------------------ install_zsh_config() {
# Paquetes base echo "Instalando ZSH base…"
# ------------------------------------------------ brew install zsh curl wget git yq jq xclip node python
progress "Instalando paquetes base"
brew install zsh curl wget git xclip yq jq
# ------------------------------------------------ echo "Instalando Oh My Zsh…"
# Oh My Zsh
# ------------------------------------------------
progress "Instalando Oh My Zsh"
if [ ! -d "$HOME/.oh-my-zsh" ]; then if [ ! -d "$HOME/.oh-my-zsh" ]; then
RUNZSH=no CHSH=no KEEP_ZSHRC=yes \ RUNZSH=no CHSH=no KEEP_ZSHRC=yes \
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
fi fi
# ------------------------------------------------ echo "Instalando plugins…"
# Plugins ZSH
# ------------------------------------------------
progress "Instalando plugins ZSH"
mkdir -p ~/.oh-my-zsh/custom/plugins mkdir -p ~/.oh-my-zsh/custom/plugins
repos=( repos=(
@@ -73,15 +55,14 @@ install_everything() {
for r in "${repos[@]}"; do for r in "${repos[@]}"; do
folder=$(basename "$r") folder=$(basename "$r")
[ ! -d "$HOME/.oh-my-zsh/custom/plugins/$folder" ] && \ if [ ! -d "$HOME/.oh-my-zsh/custom/plugins/$folder" ]; then
git clone https://github.com/$r ~/.oh-my-zsh/custom/plugins/$folder git clone https://github.com/$r ~/.oh-my-zsh/custom/plugins/$folder
fi
done done
# ------------------------------------------------ echo "Instalando Oh My Posh…"
# Oh My Posh + tema + fuente
# ------------------------------------------------
progress "Instalando Oh My Posh y tema Catppuccin"
brew install jandedobbeleer/oh-my-posh/oh-my-posh brew install jandedobbeleer/oh-my-posh/oh-my-posh
mkdir -p ~/.poshthemes mkdir -p ~/.poshthemes
curl -fsSL \ curl -fsSL \
https://raw.githubusercontent.com/JanDeDobbeleer/oh-my-posh/main/themes/catppuccin.omp.json \ https://raw.githubusercontent.com/JanDeDobbeleer/oh-my-posh/main/themes/catppuccin.omp.json \
@@ -89,30 +70,25 @@ install_everything() {
oh-my-posh font install meslo oh-my-posh font install meslo
# ------------------------------------------------ echo "Descargando tu .zshrc.example…"
# Descargar tu archivo .zshrc curl -fsSL https://raw.githubusercontent.com/marcogll/mac_vntySet/main/.zshrc.example \
# ------------------------------------------------
progress "Descargando archivo .zshrc VanityOS"
curl -fsSL \
https://raw.githubusercontent.com/marcogll/mac_vntySet/refs/heads/main/.zshrc.example \
-o ~/.zshrc -o ~/.zshrc
# ------------------------------------------------ echo "source ~/.zshrc" | pbcopy
# Python, Node, yt-dlp, Docker, LazyDocker echo ""
# ------------------------------------------------ echo "Tu configuración ZSH está instalada."
progress "Instalando Python, Node, yt-dlp y LazyDocker" echo "El comando 'source ~/.zshrc' ya está copiado al portapapeles."
brew install python node yt-dlp lazydocker echo ""
}
# ------------------------------------------------ install_docker_stack() {
# Docker Desktop echo "Instalando Docker Desktop…"
# ------------------------------------------------
progress "Instalando Docker Desktop (CLI + Compose)"
brew install --cask docker brew install --cask docker
# ------------------------------------------------ echo "Instalando Lazydocker…"
# Portainer (Docker) brew install lazydocker
# ------------------------------------------------
progress "Configurando Portainer CE" echo "Instalando Portainer"
docker volume create portainer_data || true docker volume create portainer_data || true
docker stop portainer >/dev/null 2>&1 || true docker stop portainer >/dev/null 2>&1 || true
docker rm portainer >/dev/null 2>&1 || true docker rm portainer >/dev/null 2>&1 || true
@@ -124,52 +100,36 @@ install_everything() {
-v /var/run/docker.sock:/var/run/docker.sock \ -v /var/run/docker.sock:/var/run/docker.sock \
-v portainer_data:/data \ -v portainer_data:/data \
portainer/portainer-ce:latest portainer/portainer-ce:latest
# ------------------------------------------------
# Copiar "source ~/.zshrc" al portapapeles
# ------------------------------------------------
echo "source ~/.zshrc" | pbcopy
echo ""
echo "La configuración está lista."
echo "Pega en tu terminal:"
echo ""
echo " source ~/.zshrc"
echo ""
echo "(Ya está copiado en tu portapapeles)"
} }
# ==============================================
# MENU
# ==============================================
menu() {
header
echo "Selecciona una opción (ENTER = A):" case "$choice" in
echo "" A|a)
echo " A) Instalar TODO (recomendado)" install_homebrew
echo " 1) Instalar Homebrew" install_zsh_config
echo " 2) Instalar ZSH + plugins" install_docker_stack
echo " 3) Instalar Oh My Posh + tema" ;;
echo " 4) Instalar Python + Node" C|c)
echo " 5) Instalar Docker + Portainer + LazyDocker" install_homebrew
echo " 6) Instalar yt-dlp + aliases" install_zsh_config
echo " 0) Salir" ;;
echo "" D|d)
install_homebrew
read -rp "Opción [A]: " opt install_docker_stack
opt="${opt:-A}" ;;
Q|q)
echo "" echo "Saliendo…"
exit 0
case "$opt" in ;;
A|a) install_everything ;;
0) echo "Saliendo…"; exit 0 ;;
*) *)
echo "Modo individual aún no habilitado." echo "Opción inválida."
sleep 1 exit 1
menu
;; ;;
esac esac
}
menu
echo ""
echo "=============================================="
echo " Instalación completada."
echo "=============================================="
echo ""