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 <git@andrejus.uk>
This commit is contained in:
0
script/install.d/00-os.sh
Normal file → Executable file
0
script/install.d/00-os.sh
Normal file → Executable file
0
script/install.d/10-brew.sh
Normal file → Executable file
0
script/install.d/10-brew.sh
Normal file → Executable file
0
script/install.d/11-apt.sh
Normal file → Executable file
0
script/install.d/11-apt.sh
Normal file → Executable file
0
script/install.d/12-pacman.sh
Normal file → Executable file
0
script/install.d/12-pacman.sh
Normal file → Executable file
0
script/install.d/20-ssh.sh
Normal file → Executable file
0
script/install.d/20-ssh.sh
Normal file → Executable file
0
script/install.d/21-git.sh
Normal file → Executable file
0
script/install.d/21-git.sh
Normal file → Executable file
0
script/install.d/22-zsh.sh
Normal file → Executable file
0
script/install.d/22-zsh.sh
Normal file → Executable file
0
script/install.d/23-stow.sh
Normal file → Executable file
0
script/install.d/23-stow.sh
Normal file → Executable file
51
script/install.d/30-mise.sh
Normal file → Executable file
51
script/install.d/30-mise.sh
Normal file → Executable file
@@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
# -----------------------------------------------------------------------------
|
# -----------------------------------------------------------------------------
|
||||||
# Description:
|
# Description:
|
||||||
# Install mise runtime manager (base installation only).
|
# Install mise runtime manager and all development tools.
|
||||||
# Individual tools are installed in separate scripts (31-python, 32-node, etc.)
|
# Consolidated installation of Python, Node.js, GitHub CLI, Terraform, Firebase, etc.
|
||||||
#
|
#
|
||||||
|
|
||||||
# Skip in Codespaces (use pre-installed versions)
|
# Skip in Codespaces (use pre-installed versions)
|
||||||
@@ -39,3 +39,50 @@ if ! command -v mise &>/dev/null; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
mise --version
|
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)"
|
||||||
|
|||||||
@@ -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
|
|
||||||
@@ -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)"
|
|
||||||
@@ -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
|
|
||||||
@@ -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)"
|
|
||||||
@@ -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
|
|
||||||
|
|
||||||
0
script/install.d/41-docker.sh
Normal file → Executable file
0
script/install.d/41-docker.sh
Normal file → Executable file
0
script/install.d/42-azure.sh
Normal file → Executable file
0
script/install.d/42-azure.sh
Normal file → Executable file
0
script/install.d/43-copilot.sh
Normal file → Executable file
0
script/install.d/43-copilot.sh
Normal file → Executable file
0
script/install.d/50-redis.sh
Normal file → Executable file
0
script/install.d/50-redis.sh
Normal file → Executable file
0
script/install.d/60-iterm2.sh
Normal file → Executable file
0
script/install.d/60-iterm2.sh
Normal file → Executable file
0
script/install.d/61-nerdfont.sh
Normal file → Executable file
0
script/install.d/61-nerdfont.sh
Normal file → Executable file
0
script/install.d/70-cca.sh
Normal file → Executable file
0
script/install.d/70-cca.sh
Normal file → Executable file
0
script/install.d/71-rectangle.sh
Normal file → Executable file
0
script/install.d/71-rectangle.sh
Normal file → Executable file
0
script/install.d/72-meetingbar.sh
Normal file → Executable file
0
script/install.d/72-meetingbar.sh
Normal file → Executable file
0
script/install.d/73-betterdisplay.sh
Normal file → Executable file
0
script/install.d/73-betterdisplay.sh
Normal file → Executable file
0
script/install.d/74-dockutil.sh
Normal file → Executable file
0
script/install.d/74-dockutil.sh
Normal file → Executable file
0
script/install.d/80-fastfetch.sh
Normal file → Executable file
0
script/install.d/80-fastfetch.sh
Normal file → Executable file
0
script/install.d/81-cmatrix.sh
Normal file → Executable file
0
script/install.d/81-cmatrix.sh
Normal file → Executable file
0
script/install.d/90-macos.sh
Normal file → Executable file
0
script/install.d/90-macos.sh
Normal file → Executable file
0
script/install.d/99-fastfetch.sh
Normal file → Executable file
0
script/install.d/99-fastfetch.sh
Normal file → Executable file
Reference in New Issue
Block a user