From d872eda9eee7caaa2b07fd961444812042469f5c Mon Sep 17 00:00:00 2001 From: Copilot <198982749+Copilot@users.noreply.github.com> Date: Thu, 29 Jan 2026 18:24:58 +0000 Subject: [PATCH] Consolidate mise tool installations and fix PATH activation (#71) * Initial plan * Consolidate mise tools installation and fix GitHub Copilot CLI package Co-authored-by: andrejusk <7396847+andrejusk@users.noreply.github.com> * Revert copilot package changes and remove --jobs flag from mise install Co-authored-by: andrejusk <7396847+andrejusk@users.noreply.github.com> * fix: permissions * Move GitHub CLI (gh) installation to mise Co-authored-by: andrejusk <7396847+andrejusk@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: andrejusk <7396847+andrejusk@users.noreply.github.com> Co-authored-by: Andrejus --- script/install.d/00-os.sh | 0 script/install.d/10-brew.sh | 0 script/install.d/11-apt.sh | 0 script/install.d/12-pacman.sh | 0 script/install.d/20-ssh.sh | 0 script/install.d/21-git.sh | 0 script/install.d/22-zsh.sh | 0 script/install.d/23-stow.sh | 0 script/install.d/30-mise.sh | 51 ++++++++++++++++++++++++++-- script/install.d/31-python.sh | 31 ----------------- script/install.d/32-node.sh | 17 ---------- script/install.d/33-terraform.sh | 16 --------- script/install.d/34-firebase.sh | 16 --------- script/install.d/40-gh.sh | 34 ------------------- script/install.d/41-docker.sh | 0 script/install.d/42-azure.sh | 0 script/install.d/43-copilot.sh | 0 script/install.d/50-redis.sh | 0 script/install.d/60-iterm2.sh | 0 script/install.d/61-nerdfont.sh | 0 script/install.d/70-cca.sh | 0 script/install.d/71-rectangle.sh | 0 script/install.d/72-meetingbar.sh | 0 script/install.d/73-betterdisplay.sh | 0 script/install.d/74-dockutil.sh | 0 script/install.d/80-fastfetch.sh | 0 script/install.d/81-cmatrix.sh | 0 script/install.d/90-macos.sh | 0 script/install.d/99-fastfetch.sh | 0 29 files changed, 49 insertions(+), 116 deletions(-) mode change 100644 => 100755 script/install.d/00-os.sh mode change 100644 => 100755 script/install.d/10-brew.sh mode change 100644 => 100755 script/install.d/11-apt.sh mode change 100644 => 100755 script/install.d/12-pacman.sh mode change 100644 => 100755 script/install.d/20-ssh.sh mode change 100644 => 100755 script/install.d/21-git.sh mode change 100644 => 100755 script/install.d/22-zsh.sh mode change 100644 => 100755 script/install.d/23-stow.sh mode change 100644 => 100755 script/install.d/30-mise.sh delete mode 100644 script/install.d/31-python.sh delete mode 100644 script/install.d/32-node.sh delete mode 100644 script/install.d/33-terraform.sh delete mode 100644 script/install.d/34-firebase.sh delete mode 100644 script/install.d/40-gh.sh mode change 100644 => 100755 script/install.d/41-docker.sh mode change 100644 => 100755 script/install.d/42-azure.sh mode change 100644 => 100755 script/install.d/43-copilot.sh mode change 100644 => 100755 script/install.d/50-redis.sh mode change 100644 => 100755 script/install.d/60-iterm2.sh mode change 100644 => 100755 script/install.d/61-nerdfont.sh mode change 100644 => 100755 script/install.d/70-cca.sh mode change 100644 => 100755 script/install.d/71-rectangle.sh mode change 100644 => 100755 script/install.d/72-meetingbar.sh mode change 100644 => 100755 script/install.d/73-betterdisplay.sh mode change 100644 => 100755 script/install.d/74-dockutil.sh mode change 100644 => 100755 script/install.d/80-fastfetch.sh mode change 100644 => 100755 script/install.d/81-cmatrix.sh mode change 100644 => 100755 script/install.d/90-macos.sh mode change 100644 => 100755 script/install.d/99-fastfetch.sh diff --git a/script/install.d/00-os.sh b/script/install.d/00-os.sh old mode 100644 new mode 100755 diff --git a/script/install.d/10-brew.sh b/script/install.d/10-brew.sh old mode 100644 new mode 100755 diff --git a/script/install.d/11-apt.sh b/script/install.d/11-apt.sh old mode 100644 new mode 100755 diff --git a/script/install.d/12-pacman.sh b/script/install.d/12-pacman.sh old mode 100644 new mode 100755 diff --git a/script/install.d/20-ssh.sh b/script/install.d/20-ssh.sh old mode 100644 new mode 100755 diff --git a/script/install.d/21-git.sh b/script/install.d/21-git.sh old mode 100644 new mode 100755 diff --git a/script/install.d/22-zsh.sh b/script/install.d/22-zsh.sh old mode 100644 new mode 100755 diff --git a/script/install.d/23-stow.sh b/script/install.d/23-stow.sh old mode 100644 new mode 100755 diff --git a/script/install.d/30-mise.sh b/script/install.d/30-mise.sh old mode 100644 new mode 100755 index d0d8bec..7657f51 --- a/script/install.d/30-mise.sh +++ b/script/install.d/30-mise.sh @@ -2,8 +2,8 @@ # ----------------------------------------------------------------------------- # Description: -# Install mise runtime manager (base installation only). -# Individual tools are installed in separate scripts (31-python, 32-node, etc.) +# Install mise runtime manager and all development tools. +# Consolidated installation of Python, Node.js, GitHub CLI, Terraform, Firebase, etc. # # Skip in Codespaces (use pre-installed versions) @@ -39,3 +39,50 @@ if ! command -v mise &>/dev/null; then fi mise --version + +# Define all tools to install +typeset -a MISE_TOOLS=( + "python@3" + "poetry@latest" + "node@lts" + "gh@latest" + "terraform@latest" + "firebase@latest" +) + +# Install all tools in parallel +log_info "Installing development tools in parallel..." +mise install "${MISE_TOOLS[@]}" + +# Set global versions +log_info "Setting global versions..." +mise use -g python@3 +mise use -g poetry@latest +mise use -g node@lts +mise use -g gh@latest +mise use -g terraform@latest +mise use -g firebase@latest + +# Activate mise environment for current session +eval "$(mise activate bash)" +export PATH="$HOME/.local/share/mise/shims:$PATH" + +# Setup Poetry ZSH completions +ZSH_CUSTOM="${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}" +if [[ -d "$ZSH_CUSTOM/plugins" ]]; then + POETRY_PLUGIN="$ZSH_CUSTOM/plugins/poetry" + if [ ! -d "$POETRY_PLUGIN" ]; then + mkdir -p "$POETRY_PLUGIN" + mise exec -- poetry completions zsh > "$POETRY_PLUGIN/_poetry" + fi +fi + +# Verify installations using mise exec +log_info "Verifying installations..." +mise exec -- python --version +mise exec -- poetry --version +echo "node $(mise exec -- node --version)" +echo "npm $(mise exec -- npm --version)" +mise exec -- gh --version +mise exec -- terraform --version +echo "firebase: $(mise exec -- firebase --version)" diff --git a/script/install.d/31-python.sh b/script/install.d/31-python.sh deleted file mode 100644 index 78f586c..0000000 --- a/script/install.d/31-python.sh +++ /dev/null @@ -1,31 +0,0 @@ -#!/usr/bin/env bash - -# ----------------------------------------------------------------------------- -# Description: -# Install Python via mise and configure poetry. -# - -# Skip in Codespaces (use pre-installed versions) -[[ "$DOTS_ENV" == "codespaces" ]] && { log_pass "Skipping in Codespaces"; return 0; } - -log_info "Installing Python..." -mise install python@3 -mise use -g python@3 - -log_info "Installing Poetry..." -mise install poetry@latest -mise use -g poetry@latest - -# Setup Poetry ZSH completions -ZSH_CUSTOM="${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}" -if [[ -d "$ZSH_CUSTOM/plugins" ]]; then - POETRY_PLUGIN="$ZSH_CUSTOM/plugins/poetry" - if [ ! -d "$POETRY_PLUGIN" ]; then - mkdir -p "$POETRY_PLUGIN" - poetry completions zsh > "$POETRY_PLUGIN/_poetry" - fi -fi - -# Verify installations -python --version -poetry --version diff --git a/script/install.d/32-node.sh b/script/install.d/32-node.sh deleted file mode 100644 index d69a954..0000000 --- a/script/install.d/32-node.sh +++ /dev/null @@ -1,17 +0,0 @@ -#!/usr/bin/env bash - -# ----------------------------------------------------------------------------- -# Description: -# Install Node.js via mise. -# - -# Skip in Codespaces (use pre-installed versions) -[[ "$DOTS_ENV" == "codespaces" ]] && { log_pass "Skipping in Codespaces"; return 0; } - -log_info "Installing Node.js..." -mise install node@lts -mise use -g node@lts - -# Verify installations -echo "node $(node --version)" -echo "npm $(npm --version)" diff --git a/script/install.d/33-terraform.sh b/script/install.d/33-terraform.sh deleted file mode 100644 index 7b1d999..0000000 --- a/script/install.d/33-terraform.sh +++ /dev/null @@ -1,16 +0,0 @@ -#!/usr/bin/env bash - -# ----------------------------------------------------------------------------- -# Description: -# Install Terraform via mise. -# - -# Skip in Codespaces (not needed) -[[ "$DOTS_ENV" == "codespaces" ]] && { log_pass "Skipping in Codespaces"; return 0; } - -log_info "Installing Terraform..." -mise install terraform@latest -mise use -g terraform@latest - -# Verify installation -terraform --version diff --git a/script/install.d/34-firebase.sh b/script/install.d/34-firebase.sh deleted file mode 100644 index 2f67f31..0000000 --- a/script/install.d/34-firebase.sh +++ /dev/null @@ -1,16 +0,0 @@ -#!/usr/bin/env bash - -# ----------------------------------------------------------------------------- -# Description: -# Install Firebase CLI via mise. -# - -# Skip in Codespaces (not needed) -[[ "$DOTS_ENV" == "codespaces" ]] && { log_pass "Skipping in Codespaces"; return 0; } - -log_info "Installing Firebase CLI..." -mise install firebase@latest -mise use -g firebase@latest - -# Verify installation -echo "firebase: $(firebase --version)" diff --git a/script/install.d/40-gh.sh b/script/install.d/40-gh.sh deleted file mode 100644 index 774db81..0000000 --- a/script/install.d/40-gh.sh +++ /dev/null @@ -1,34 +0,0 @@ -#!/usr/bin/env bash - -# ----------------------------------------------------------------------------- -# Description: -# Install GitHub CLI. -# - -# Skip in Codespaces (pre-installed in universal image) -[[ "$DOTS_ENV" == "codespaces" ]] && { log_pass "Skipping in Codespaces"; return 0; } - -if ! command -v gh &>/dev/null; then - case "$DOTS_PKG" in - apt) - # https://github.com/cli/cli/blob/trunk/docs/install_linux.md#debian-ubuntu-linux-raspberry-pi-os-apt - sudo mkdir -p -m 755 /etc/apt/keyrings && wget -qO- https://cli.github.com/packages/githubcli-archive-keyring.gpg | sudo tee /etc/apt/keyrings/githubcli-archive-keyring.gpg >/dev/null && - sudo chmod go+r /etc/apt/keyrings/githubcli-archive-keyring.gpg && - echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | sudo tee /etc/apt/sources.list.d/github-cli.list >/dev/null && - sudo apt-get update -qq && - sudo apt-get install -qq gh - ;; - pacman) - sudo pacman -S --noconfirm github-cli - ;; - brew) - brew install gh - ;; - *) - log_warn "Skipping GitHub CLI install: no supported package manager found" - ;; - esac -fi - -gh --version - diff --git a/script/install.d/41-docker.sh b/script/install.d/41-docker.sh old mode 100644 new mode 100755 diff --git a/script/install.d/42-azure.sh b/script/install.d/42-azure.sh old mode 100644 new mode 100755 diff --git a/script/install.d/43-copilot.sh b/script/install.d/43-copilot.sh old mode 100644 new mode 100755 diff --git a/script/install.d/50-redis.sh b/script/install.d/50-redis.sh old mode 100644 new mode 100755 diff --git a/script/install.d/60-iterm2.sh b/script/install.d/60-iterm2.sh old mode 100644 new mode 100755 diff --git a/script/install.d/61-nerdfont.sh b/script/install.d/61-nerdfont.sh old mode 100644 new mode 100755 diff --git a/script/install.d/70-cca.sh b/script/install.d/70-cca.sh old mode 100644 new mode 100755 diff --git a/script/install.d/71-rectangle.sh b/script/install.d/71-rectangle.sh old mode 100644 new mode 100755 diff --git a/script/install.d/72-meetingbar.sh b/script/install.d/72-meetingbar.sh old mode 100644 new mode 100755 diff --git a/script/install.d/73-betterdisplay.sh b/script/install.d/73-betterdisplay.sh old mode 100644 new mode 100755 diff --git a/script/install.d/74-dockutil.sh b/script/install.d/74-dockutil.sh old mode 100644 new mode 100755 diff --git a/script/install.d/80-fastfetch.sh b/script/install.d/80-fastfetch.sh old mode 100644 new mode 100755 diff --git a/script/install.d/81-cmatrix.sh b/script/install.d/81-cmatrix.sh old mode 100644 new mode 100755 diff --git a/script/install.d/90-macos.sh b/script/install.d/90-macos.sh old mode 100644 new mode 100755 diff --git a/script/install.d/99-fastfetch.sh b/script/install.d/99-fastfetch.sh old mode 100644 new mode 100755