|
@@ -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" &|
|