fix(rtx): fix `rtx` init procedure (#11949)

This commit is contained in:
Marc Cornellà 2023-10-09 17:53:00 +02:00 committed by GitHub
parent b75b01a309
commit 30a8a5d3e2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 15 additions and 27 deletions

View File

@ -1,30 +1,18 @@
# Find where rtx should be installed
RTX_DIR="${RTX_DIR:-$HOME/.rtx}"
RTX_COMPLETIONS="$RTX_DIR/completions"
if [[ ! -f "$RTX_DIR/rtx.sh" || ! -f "$RTX_COMPLETIONS/_rtx" ]]; then
# If not found, check for archlinux/AUR package (/opt/rtx-vm/)
if [[ -f "/opt/rtx-vm/rtx.sh" ]]; then
RTX_DIR="/opt/rtx-vm"
RTX_COMPLETIONS="$RTX_DIR"
# If not found, check for Homebrew package
elif (( $+commands[brew] )); then
_RTX_PREFIX="$(brew --prefix rtx)"
RTX_DIR="${_RTX_PREFIX}/libexec"
RTX_COMPLETIONS="${_RTX_PREFIX}/share/zsh/site-functions"
unset _RTX_PREFIX
else
return
fi
# rtx needs to be in $PATH
if (( ! ${+commands[rtx]} )); then
return
fi
# Load command
if [[ -f "$RTX_DIR/rtx.sh" ]]; then
source "$RTX_DIR/rtx.sh"
# Load completions
if [[ -f "$RTX_COMPLETIONS/_rtx" ]]; then
fpath+=("$RTX_COMPLETIONS")
autoload -Uz _rtx
compdef _rtx rtx # compdef is already loaded before loading plugins
fi
# Load rtx hooks
eval "$(rtx activate zsh)"
# If the completion file doesn't exist yet, we need to autoload it and
# bind it to `rtx`. Otherwise, compinit will have already done that.
if [[ ! -f "$ZSH_CACHE_DIR/completions/_rtx" ]]; then
typeset -g -A _comps
autoload -Uz _rtx
_comps[rtx]=_rtx
fi
# Generate and load rtx completion
rtx completion zsh >! "$ZSH_CACHE_DIR/completions/_rtx" &|