summaryrefslogtreecommitdiff
path: root/.config/zsh/oh-my-zsh/plugins/asdf/asdf.plugin.zsh
diff options
context:
space:
mode:
authorPedro Pereira <pedro.hr.pereira@proton.me>2026-10-16 15:19:13 -0300
committerPedro Pereira <pedro.hr.pereira@proton.me>2026-10-16 15:19:13 -0300
commit1eb69e9a795cc19450178c07d8d382622bc7ad70 (patch)
treeb6bc60605044fe929986f31b3b6bf4fee9b56e14 /.config/zsh/oh-my-zsh/plugins/asdf/asdf.plugin.zsh
first commit
Diffstat (limited to '.config/zsh/oh-my-zsh/plugins/asdf/asdf.plugin.zsh')
-rw-r--r--.config/zsh/oh-my-zsh/plugins/asdf/asdf.plugin.zsh48
1 files changed, 48 insertions, 0 deletions
diff --git a/.config/zsh/oh-my-zsh/plugins/asdf/asdf.plugin.zsh b/.config/zsh/oh-my-zsh/plugins/asdf/asdf.plugin.zsh
new file mode 100644
index 0000000..4367e8c
--- /dev/null
+++ b/.config/zsh/oh-my-zsh/plugins/asdf/asdf.plugin.zsh
@@ -0,0 +1,48 @@
+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
+
+# Find where asdf should be installed
+ASDF_DIR="${ASDF_DIR:-$HOME/.asdf}"
+ASDF_COMPLETIONS="$ASDF_DIR/completions"
+
+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
+fi
+
+# Load command
+if [[ -f "$ASDF_DIR/asdf.sh" ]]; then
+ source "$ASDF_DIR/asdf.sh"
+ # Load completions
+ if [[ -f "$ASDF_COMPLETIONS/_asdf" ]]; then
+ fpath+=("$ASDF_COMPLETIONS")
+ autoload -Uz _asdf
+ compdef _asdf asdf # compdef is already loaded before loading plugins
+ fi
+fi