d9c58d5fa10a1e9911d61adf7ccfbd64b24e713f

Author
Carlo Sala <carlosalag@protonmail.com>
Committer
GitHub <noreply@github.com>
Date

Message

feat(yarn): add setting to disable adding global dir to `$PATH` (#10642)

Diff

 1diff --git a/plugins/yarn/README.md b/plugins/yarn/README.md
 2index 9a0d1708df7db00812848fb7cefcfd0263087704..9c16ff2c3f3d24bc5491d2a91bc40ee4a6803f33 100644
 3--- a/plugins/yarn/README.md
 4+++ b/plugins/yarn/README.md
 5@@ -9,6 +9,15 @@ To use it, add `yarn` to the plugins array in your zshrc file:
 6 plugins=(... yarn)
 7 ```
 8 
 9+## Global scripts directory
10+
11+It also adds `yarn` global scripts dir (commonly `~/.yarn/bin`) to the `$PATH`.
12+To disable this feature, set the following style in your `.zshrc`:
13+
14+```zsh
15+zstyle ':omz:plugins:yarn' global-path false
16+```
17+
18 ## Aliases
19 
20 | Alias | Command                                   | Description                                                                   |
21diff --git a/plugins/yarn/yarn.plugin.zsh b/plugins/yarn/yarn.plugin.zsh
22index 9ba24420ad3be706e97465ccb96eb368931fa842..bcb8661cf1e2423e2bcbddc2af11defd49850cdb 100644
23--- a/plugins/yarn/yarn.plugin.zsh
24+++ b/plugins/yarn/yarn.plugin.zsh
25@@ -1,12 +1,14 @@
26-# Skip yarn call if default global bin dir exists
27-[[ -d "$HOME/.yarn/bin" ]] && bindir="$HOME/.yarn/bin" || bindir="$(yarn global bin 2>/dev/null)"
28+if zstyle -T ':omz:plugins:yarn' global-path; then
29+  # Skip yarn call if default global bin dir exists
30+  [[ -d "$HOME/.yarn/bin" ]] && bindir="$HOME/.yarn/bin" || bindir="$(yarn global bin 2>/dev/null)"
31 
32-# Add yarn bin directory to $PATH if it exists and not already in $PATH
33-[[ $? -eq 0 ]] \
34-  && [[ -d "$bindir" ]] \
35-  && (( ! ${path[(Ie)$bindir]} )) \
36-  && path+=("$bindir")
37-unset bindir
38+  # Add yarn bin directory to $PATH if it exists and not already in $PATH
39+  [[ $? -eq 0 ]] \
40+    && [[ -d "$bindir" ]] \
41+    && (( ! ${path[(Ie)$bindir]} )) \
42+    && path+=("$bindir")
43+  unset bindir
44+fi
45 
46 alias y="yarn"
47 alias ya="yarn add"