mirror of
https://github.com/marcogll/mac_vntySet.git
synced 2026-01-13 13:25:15 +00:00
Update vanity_setup.sh
This commit is contained in:
246
vanity_setup.sh
246
vanity_setup.sh
@@ -1,115 +1,175 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
# ────────────────────────────────────────────────
|
# ==============================================
|
||||||
# ASCII ART VANITY OS SHELL
|
# HEADER
|
||||||
# ────────────────────────────────────────────────
|
# ==============================================
|
||||||
printf "\n"
|
header() {
|
||||||
printf "██╗ ██╗ █████╗ ███╗ ██╗██╗███╗ ██╗██╗ ██╗ ██████╗ ███████╗\n"
|
echo ""
|
||||||
printf "██║ ██║██╔══██╗████╗ ██║██║████╗ ██║██║ ██║ ██╔════╝ ██╔════╝\n"
|
echo "=============================================="
|
||||||
printf "██║ ██║███████║██╔██╗ ██║██║██╔██╗ ██║██║ ██║ ██║ ███╗█████╗ \n"
|
echo " V A N I T Y S H E L L"
|
||||||
printf "╚██╗ ██╔╝██╔══██║██║╚██╗██║██║██║╚██╗██║██║ ██║ ██║ ██║██╔══╝ \n"
|
echo " macOS Development Installer"
|
||||||
printf " ╚████╔╝ ██║ ██║██║ ╚████║██║██║ ╚████║╚██████╔╝ ╚██████╔╝███████╗\n"
|
echo "=============================================="
|
||||||
printf " ╚═══╝ ╚═╝ ╚═╝╚═╝ ╚═══╝╚═╝╚═╝ ╚═══╝ ╚═════╝ ╚═════╝ ╚══════╝\n"
|
echo ""
|
||||||
printf " Vanity OS Shell Installer (macOS)\n\n"
|
}
|
||||||
|
|
||||||
# ────────────────────────────────────────────────
|
# ==============================================
|
||||||
# Homebrew
|
# PROGRESO VISUAL
|
||||||
# ────────────────────────────────────────────────
|
# ==============================================
|
||||||
if ! command -v brew >/dev/null 2>&1; then
|
progress() {
|
||||||
echo "Instalando Homebrew…"
|
local task="$1"
|
||||||
NONINTERACTIVE=1 /bin/bash -c \
|
echo "→ $task"
|
||||||
|
for i in 10 25 40 55 70 85 100; do
|
||||||
|
printf " [%3s%%]\r" "$i"
|
||||||
|
sleep 0.06
|
||||||
|
done
|
||||||
|
printf " [100%%] ✓ Completado\n\n"
|
||||||
|
}
|
||||||
|
|
||||||
|
# ==============================================
|
||||||
|
# INSTALACIÓN REAL
|
||||||
|
# ==============================================
|
||||||
|
install_everything() {
|
||||||
|
|
||||||
|
# ------------------------------------------------
|
||||||
|
# Homebrew
|
||||||
|
# ------------------------------------------------
|
||||||
|
progress "Instalando Homebrew"
|
||||||
|
if ! command -v brew >/dev/null 2>&1; then
|
||||||
|
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
|
fi
|
||||||
echo "Homebrew ya está instalado."
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "Actualizando Homebrew…"
|
brew update
|
||||||
brew update
|
|
||||||
|
|
||||||
# ────────────────────────────────────────────────
|
# ------------------------------------------------
|
||||||
# Instalando paquetes base
|
# Paquetes base
|
||||||
# ────────────────────────────────────────────────
|
# ------------------------------------------------
|
||||||
brew install zsh curl wget git xclip yq jq
|
progress "Instalando paquetes base"
|
||||||
|
brew install zsh curl wget git xclip yq jq
|
||||||
|
|
||||||
# ────────────────────────────────────────────────
|
# ------------------------------------------------
|
||||||
# Oh My Zsh
|
# Oh My Zsh
|
||||||
# ────────────────────────────────────────────────
|
# ------------------------------------------------
|
||||||
if [ ! -d "$HOME/.oh-my-zsh" ]; then
|
progress "Instalando Oh My Zsh"
|
||||||
echo "Instalando Oh My Zsh…"
|
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
|
||||||
|
|
||||||
# ────────────────────────────────────────────────
|
# ------------------------------------------------
|
||||||
# Plugins de ZSH
|
# Plugins ZSH
|
||||||
# ────────────────────────────────────────────────
|
# ------------------------------------------------
|
||||||
mkdir -p ~/.oh-my-zsh/custom/plugins
|
progress "Instalando plugins ZSH"
|
||||||
|
mkdir -p ~/.oh-my-zsh/custom/plugins
|
||||||
|
|
||||||
repos=(
|
repos=(
|
||||||
"zsh-users/zsh-autosuggestions"
|
"zsh-users/zsh-autosuggestions"
|
||||||
"zsh-users/zsh-syntax-highlighting"
|
"zsh-users/zsh-syntax-highlighting"
|
||||||
"zsh-users/zsh-completions"
|
"zsh-users/zsh-completions"
|
||||||
)
|
)
|
||||||
|
|
||||||
for r in "${repos[@]}"; do
|
for r in "${repos[@]}"; do
|
||||||
folder=$(basename "$r")
|
folder=$(basename "$r")
|
||||||
if [ ! -d "$HOME/.oh-my-zsh/custom/plugins/$folder" ]; then
|
[ ! -d "$HOME/.oh-my-zsh/custom/plugins/$folder" ] && \
|
||||||
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
|
|
||||||
|
|
||||||
# ────────────────────────────────────────────────
|
# ------------------------------------------------
|
||||||
# Instalación Oh My Posh + tema + fuentes
|
# Oh My Posh + tema + fuente
|
||||||
# ────────────────────────────────────────────────
|
# ------------------------------------------------
|
||||||
brew install jandedobbeleer/oh-my-posh/oh-my-posh
|
progress "Instalando Oh My Posh y tema Catppuccin"
|
||||||
|
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
|
||||||
|
|
||||||
mkdir -p ~/.poshthemes
|
oh-my-posh font install meslo
|
||||||
curl -fsSL \
|
|
||||||
https://raw.githubusercontent.com/JanDeDobbeleer/oh-my-posh/main/themes/catppuccin.omp.json \
|
|
||||||
-o ~/.poshthemes/catppuccin.omp.json
|
|
||||||
|
|
||||||
# fuente recomendada
|
# ------------------------------------------------
|
||||||
oh-my-posh font install meslo
|
# Descargar tu archivo .zshrc
|
||||||
|
# ------------------------------------------------
|
||||||
|
progress "Descargando archivo .zshrc VanityOS"
|
||||||
|
curl -fsSL \
|
||||||
|
https://raw.githubusercontent.com/marcogll/mac_vntySet/refs/heads/main/.zshrc.example \
|
||||||
|
-o ~/.zshrc
|
||||||
|
|
||||||
# ────────────────────────────────────────────────
|
# ------------------------------------------------
|
||||||
# Descargar tu .zshrc.example
|
# Python, Node, yt-dlp, Docker, LazyDocker
|
||||||
# ────────────────────────────────────────────────
|
# ------------------------------------------------
|
||||||
echo "Descargando .zshrc.example…"
|
progress "Instalando Python, Node, yt-dlp y LazyDocker"
|
||||||
curl -fsSL https://raw.githubusercontent.com/marcogll/mac_vntySet/refs/heads/main/.zshrc.example \
|
brew install python node yt-dlp lazydocker
|
||||||
-o ~/.zshrc
|
|
||||||
|
|
||||||
# ────────────────────────────────────────────────
|
# ------------------------------------------------
|
||||||
# Python, Node, Docker, Lazydocker
|
# Docker Desktop
|
||||||
# ────────────────────────────────────────────────
|
# ------------------------------------------------
|
||||||
brew install python node lazydocker
|
progress "Instalando Docker Desktop (CLI + Compose)"
|
||||||
|
brew install --cask docker
|
||||||
|
|
||||||
# Docker Desktop CLI + Compose
|
# ------------------------------------------------
|
||||||
brew install --cask docker
|
# Portainer (Docker)
|
||||||
|
# ------------------------------------------------
|
||||||
|
progress "Configurando Portainer CE"
|
||||||
|
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 \
|
||||||
# Portainer (docker)
|
-p 8000:8000 -p 9443:9443 \
|
||||||
# ────────────────────────────────────────────────
|
--name=portainer \
|
||||||
docker volume create portainer_data || true
|
--restart=always \
|
||||||
docker stop portainer >/dev/null 2>&1 || true
|
-v /var/run/docker.sock:/var/run/docker.sock \
|
||||||
docker rm portainer >/dev/null 2>&1 || true
|
-v portainer_data:/data \
|
||||||
|
portainer/portainer-ce:latest
|
||||||
|
|
||||||
docker run -d \
|
# ------------------------------------------------
|
||||||
-p 8000:8000 -p 9443:9443 \
|
# Copiar "source ~/.zshrc" al portapapeles
|
||||||
--name=portainer \
|
# ------------------------------------------------
|
||||||
--restart=always \
|
echo "source ~/.zshrc" | pbcopy
|
||||||
-v /var/run/docker.sock:/var/run/docker.sock \
|
echo ""
|
||||||
-v portainer_data:/data \
|
echo "La configuración está lista."
|
||||||
portainer/portainer-ce:latest
|
echo "Pega en tu terminal:"
|
||||||
|
echo ""
|
||||||
|
echo " source ~/.zshrc"
|
||||||
|
echo ""
|
||||||
|
echo "(Ya está copiado en tu portapapeles)"
|
||||||
|
}
|
||||||
|
|
||||||
# ────────────────────────────────────────────────
|
# ==============================================
|
||||||
# Copiar "source ~/.zshrc" al portapapeles
|
# MENU
|
||||||
# ────────────────────────────────────────────────
|
# ==============================================
|
||||||
echo "source ~/.zshrc" | pbcopy
|
menu() {
|
||||||
|
header
|
||||||
|
|
||||||
printf "\nListo.\n"
|
echo "Selecciona una opción (ENTER = A):"
|
||||||
printf "Pega y ejecuta en tu terminal para activar la configuración:\n"
|
echo ""
|
||||||
printf "\n source ~/.zshrc\n\n"
|
echo " A) Instalar TODO (recomendado)"
|
||||||
printf "(Ya lo tienes en el portapapeles, solo pega con Cmd+V)\n\n"
|
echo " 1) Instalar Homebrew"
|
||||||
|
echo " 2) Instalar ZSH + plugins"
|
||||||
|
echo " 3) Instalar Oh My Posh + tema"
|
||||||
|
echo " 4) Instalar Python + Node"
|
||||||
|
echo " 5) Instalar Docker + Portainer + LazyDocker"
|
||||||
|
echo " 6) Instalar yt-dlp + aliases"
|
||||||
|
echo " 0) Salir"
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
read -rp "Opción [A]: " opt
|
||||||
|
opt="${opt:-A}"
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
case "$opt" in
|
||||||
|
A|a) install_everything ;;
|
||||||
|
0) echo "Saliendo…"; exit 0 ;;
|
||||||
|
*)
|
||||||
|
echo "Modo individual aún no habilitado."
|
||||||
|
sleep 1
|
||||||
|
menu
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
menu
|
||||||
|
|||||||
Reference in New Issue
Block a user