Files
mac_vntySet/vanity_setup.sh
2025-11-19 19:30:01 -06:00

136 lines
3.4 KiB
Bash

#!/usr/bin/env bash
set -e
clear
echo ""
echo "=============================================="
echo " V A N I T Y S H E L L"
echo " macOS Development Installer"
echo "=============================================="
echo ""
echo "Selecciona una opción:"
echo " A) Instalar TODO (recomendado)"
echo " C) Instalar solo configuración ZSH"
echo " D) Instalar Docker + Portainer + Lazydocker"
echo " Q) Salir"
echo ""
read -p "Opción [A/C/D/Q]: " choice
choice=${choice:-A}
install_homebrew() {
if ! command -v brew >/dev/null 2>&1; then
echo "Instalando Homebrew…"
NONINTERACTIVE=1 /bin/bash -c \
"$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zprofile
eval "$(/opt/homebrew/bin/brew shellenv)"
else
echo "Homebrew ya está instalado."
fi
brew update
}
install_zsh_config() {
echo "Instalando ZSH base…"
brew install zsh curl wget git yq jq xclip node python
echo "Instalando Oh My Zsh…"
if [ ! -d "$HOME/.oh-my-zsh" ]; then
RUNZSH=no CHSH=no KEEP_ZSHRC=yes \
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
fi
echo "Instalando plugins…"
mkdir -p ~/.oh-my-zsh/custom/plugins
repos=(
"zsh-users/zsh-autosuggestions"
"zsh-users/zsh-syntax-highlighting"
"zsh-users/zsh-completions"
)
for r in "${repos[@]}"; do
folder=$(basename "$r")
if [ ! -d "$HOME/.oh-my-zsh/custom/plugins/$folder" ]; then
git clone https://github.com/$r ~/.oh-my-zsh/custom/plugins/$folder
fi
done
echo "Instalando Oh My Posh…"
brew install jandedobbeleer/oh-my-posh/oh-my-posh
mkdir -p ~/.poshthemes
curl -fsSL \
https://raw.githubusercontent.com/JanDeDobbeleer/oh-my-posh/main/themes/catppuccin.omp.json \
-o ~/.poshthemes/catppuccin.omp.json
oh-my-posh font install meslo
echo "Descargando tu .zshrc.example…"
curl -fsSL https://raw.githubusercontent.com/marcogll/mac_vntySet/main/.zshrc.example \
-o ~/.zshrc
echo "source ~/.zshrc" | pbcopy
echo ""
echo "Tu configuración ZSH está instalada."
echo "El comando 'source ~/.zshrc' ya está copiado al portapapeles."
echo ""
}
install_docker_stack() {
echo "Instalando Docker Desktop…"
brew install --cask docker
echo "Instalando Lazydocker…"
brew install lazydocker
echo "Instalando Portainer…"
docker volume create portainer_data || true
docker stop portainer >/dev/null 2>&1 || true
docker rm portainer >/dev/null 2>&1 || true
docker run -d \
-p 8000:8000 -p 9443:9443 \
--name=portainer \
--restart=always \
-v /var/run/docker.sock:/var/run/docker.sock \
-v portainer_data:/data \
portainer/portainer-ce:latest
}
case "$choice" in
A|a)
install_homebrew
install_zsh_config
install_docker_stack
;;
C|c)
install_homebrew
install_zsh_config
;;
D|d)
install_homebrew
install_docker_stack
;;
Q|q)
echo "Saliendo…"
exit 0
;;
*)
echo "Opción inválida."
exit 1
;;
esac
echo ""
echo "=============================================="
echo " Instalación completada."
echo "=============================================="
echo ""