2025-02-12 20:15:25 +01:00
|
|
|
if (( $+commands[asdf] )); then
|
|
|
|
export ASDF_DATA_DIR="${ASDF_DATA_DIR:-$HOME/.asdf}"
|
|
|
|
path=("$ASDF_DATA_DIR/shims" $path)
|
|
|
|
|
|
|
|
# If the completion file doesn't exist yet, we need to autoload it and
|
|
|
|
# bind it to `asdf`. Otherwise, compinit will have already done that.
|
|
|
|
if [[ ! -f "$ZSH_CACHE_DIR/completions/_asdf" ]]; then
|
|
|
|
typeset -g -A _comps
|
|
|
|
autoload -Uz _asdf
|
|
|
|
_comps[asdf]=_asdf
|
|
|
|
fi
|
|
|
|
asdf completion zsh >| "$ZSH_CACHE_DIR/completions/_asdf" &|
|
|
|
|
|
|
|
|
return
|
|
|
|
fi
|
|
|
|
|
|
|
|
# TODO:(2025-02-12): remove deprecated asdf <0.16 code
|
|
|
|
|
2018-08-07 18:10:35 +02:00
|
|
|
# Find where asdf should be installed
|
2016-03-30 08:05:07 +02:00
|
|
|
ASDF_DIR="${ASDF_DIR:-$HOME/.asdf}"
|
2019-02-08 15:14:09 +01:00
|
|
|
ASDF_COMPLETIONS="$ASDF_DIR/completions"
|
2016-03-30 08:05:07 +02:00
|
|
|
|
2023-10-02 20:25:17 +02:00
|
|
|
if [[ ! -f "$ASDF_DIR/asdf.sh" || ! -f "$ASDF_COMPLETIONS/_asdf" ]]; then
|
|
|
|
# If not found, check for archlinux/AUR package (/opt/asdf-vm/)
|
|
|
|
if [[ -f "/opt/asdf-vm/asdf.sh" ]]; then
|
|
|
|
ASDF_DIR="/opt/asdf-vm"
|
|
|
|
ASDF_COMPLETIONS="$ASDF_DIR"
|
|
|
|
# If not found, check for Homebrew package
|
|
|
|
elif (( $+commands[brew] )); then
|
|
|
|
_ASDF_PREFIX="$(brew --prefix asdf)"
|
|
|
|
ASDF_DIR="${_ASDF_PREFIX}/libexec"
|
|
|
|
ASDF_COMPLETIONS="${_ASDF_PREFIX}/share/zsh/site-functions"
|
|
|
|
unset _ASDF_PREFIX
|
|
|
|
else
|
|
|
|
return
|
|
|
|
fi
|
2016-03-30 08:05:07 +02:00
|
|
|
fi
|
2018-04-22 20:27:12 +02:00
|
|
|
|
2018-08-07 18:10:35 +02:00
|
|
|
# Load command
|
|
|
|
if [[ -f "$ASDF_DIR/asdf.sh" ]]; then
|
2023-10-02 20:25:17 +02:00
|
|
|
source "$ASDF_DIR/asdf.sh"
|
2021-12-05 08:48:00 +01:00
|
|
|
# Load completions
|
2023-10-02 20:25:17 +02:00
|
|
|
if [[ -f "$ASDF_COMPLETIONS/_asdf" ]]; then
|
|
|
|
fpath+=("$ASDF_COMPLETIONS")
|
|
|
|
autoload -Uz _asdf
|
|
|
|
compdef _asdf asdf # compdef is already loaded before loading plugins
|
2021-12-05 08:48:00 +01:00
|
|
|
fi
|
2018-04-22 20:27:12 +02:00
|
|
|
fi
|