fix(rtx): fix `rtx` init procedure (#11949)
This commit is contained in:
parent
b75b01a309
commit
30a8a5d3e2
|
@ -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" &|
|
||||
|
|
Loading…
Reference in New Issue