summaryrefslogtreecommitdiff
path: root/plugins/chruby
diff options
context:
space:
mode:
authorDennis Dashkevich <dskecse@gmail.com>2025-08-26 05:51:00 +0300
committerGitHub <noreply@github.com>2025-08-26 10:51:00 +0800
commit266bc17ab3587920a7a98262c78dc5a026583bf3 (patch)
treed233c057acd2e4f660b719098b0c00c1d8e92df1 /plugins/chruby
parentb95022dde6a200ba3dbb96c8b997ba74d8db0136 (diff)
downloadzsh-266bc17ab3587920a7a98262c78dc5a026583bf3.tar.gz
zsh-266bc17ab3587920a7a98262c78dc5a026583bf3.tar.bz2
zsh-266bc17ab3587920a7a98262c78dc5a026583bf3.zip
fix(chruby): avoid adding PATH entries twice (#12980)
Diffstat (limited to 'plugins/chruby')
-rw-r--r--plugins/chruby/chruby.plugin.zsh32
1 files changed, 13 insertions, 19 deletions
diff --git a/plugins/chruby/chruby.plugin.zsh b/plugins/chruby/chruby.plugin.zsh
index 06afef189..1bcc6c6d9 100644
--- a/plugins/chruby/chruby.plugin.zsh
+++ b/plugins/chruby/chruby.plugin.zsh
@@ -15,6 +15,13 @@ _source-from-omz-settings() {
fi
}
+_source-from-default-location() {
+ [[ -r /usr/local/share/chruby/chruby.sh ]] || return 1
+
+ source /usr/local/share/chruby/chruby.sh
+ source /usr/local/share/chruby/auto.sh
+}
+
_source-from-homebrew() {
(( $+commands[brew] )) || return 1
@@ -36,27 +43,14 @@ _source-from-homebrew() {
source $_brew_prefix/share/chruby/auto.sh
}
-_load-chruby-dirs() {
- local dir
- for dir in "$HOME/.rubies" "$PREFIX/opt/rubies"; do
- if [[ -d "$dir" ]]; then
- RUBIES+=("$dir")
- fi
- done
-}
-
# Load chruby
-if _source-from-omz-settings; then
- _load-chruby-dirs
-elif [[ -r "/usr/local/share/chruby/chruby.sh" ]] ; then
- source /usr/local/share/chruby/chruby.sh
- source /usr/local/share/chruby/auto.sh
- _load-chruby-dirs
-elif _source-from-homebrew; then
- _load-chruby-dirs
-fi
+_source-from-omz-settings || \
+ _source-from-default-location || \
+ _source-from-homebrew
-unfunction _source-from-homebrew _source-from-omz-settings _load-chruby-dirs
+unfunction _source-from-homebrew \
+ _source-from-default-location \
+ _source-from-omz-settings
## chruby utility functions and aliases