diff --git a/setup.sh b/setup.sh index 4b02712..0ff8584 100755 --- a/setup.sh +++ b/setup.sh @@ -215,17 +215,41 @@ echo -e "${BLUE} LOG:${YELLOW} Stowing dotfiles...${NC}" cd "$DOTFILES_DIR" stow . --target="$HOME" --ignore="setup.sh" --ignore=".git" --ignore=".gitignore" --ignore="README.md" --ignore=".zsh_secrets" --ignore=".zsh_secrets.example" --ignore="LICENSE" --ignore="Makefile" --ignore="provision.sh" -# Language Installation -echo -e "${BLUE} LOG:${YELLOW} Installing languages and tools...${NC}" +# Language Setup +echo -e "${BLUE} LOG:${YELLOW} Finalizing Language Setup...${NC}" -gvm install go1.25.5 -gvm use go1.25.5 --default +# 1. Setup Node (NVM) +export NVM_DIR="$HOME/.nvm" +[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" -nvm install --lts -nvm use --lts +if command -v nvm &> /dev/null; then + echo -e "${BLUE} LOG:${YELLOW} Installing Node LTS...${NC}" + nvm install --lts + nvm use --lts + echo -e "${BLUE} LOG:${YELLOW} Installing Global Tools (pnpm, yarn)...${NC}" + npm install -g pnpm yarn +fi -rustup default stable -rustup update +# 2. Setup Go (GVM) +[[ -s "$HOME/.gvm/scripts/gvm" ]] && source "$HOME/.gvm/scripts/gvm" # Force load GVM + +if command -v gvm &> /dev/null; then + TARGET_GO="go1.24.11" + if [[ $(gvm list) != *"$TARGET_GO"* ]]; then + echo -e "${BLUE} LOG:${YELLOW} Installing Go ($TARGET_GO)...${NC}" + gvm install $TARGET_GO + gvm use $TARGET_GO --default + fi +fi + +# 3. Setup Rust +[ -f "$HOME/.cargo/env" ] && source "$HOME/.cargo/env" + +if command -v rustup &> /dev/null; then + echo -e "${BLUE} LOG:${YELLOW} Updating Rust to stable...${NC}" + rustup default stable + rustup update +fi # Finish echo -e "${GREEN} LOG: Setup Complete! Please restart your terminal to apply all changes.${NC}"