From 05a7fc62695cb027859548ab7f29b5edd6d2fb4b Mon Sep 17 00:00:00 2001 From: Augusto Moura Date: Fri, 24 Dec 2021 00:31:16 -0300 Subject: [PATCH] feat: add auto reshim for npm link --- shims/npm | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/shims/npm b/shims/npm index 93e6bfa..6be4ab2 100755 --- a/shims/npm +++ b/shims/npm @@ -22,6 +22,7 @@ should_reshim() { fi local is_global= cmd= cmd_needs_reshim= + local additional_bare_cmds=() for arg; do case "$arg" in @@ -32,7 +33,11 @@ should_reshim() { -*) ;; # Skip other options *) - cmd="${cmd:-$arg}" + if ! [ "$cmd" ]; then + cmd="$arg" + else + additional_bare_cmds+=("$arg") + fi ;; esac done @@ -47,6 +52,20 @@ should_reshim() { uninstall|un|unlink|remove|rm|r) cmd_needs_reshim=true ;; + + link|ln) + # Bare link installs a global package + if ! [ "${additional_bare_cmds[0]-}" ]; then + is_global=1 + cmd_needs_reshim=true + fi + + # Links to directories also install a global package + if [[ "${additional_bare_cmds[0]-}" =~ [./].* && -d "${additional_bare_cmds[0]-}" ]]; then + is_global=1 + cmd_needs_reshim=true + fi + ;; esac # Implicit return