mirror of
https://github.com/nvm-sh/nvm.git
synced 2026-04-04 03:54:51 +08:00
[Fix] nvm uninstall: fix alias cleanup glob expansion
The `*` glob was inside double quotes, preventing shell expansion. `nvm_grep -l` received a literal `*` filename instead of the list of alias files, so aliases pointing to uninstalled versions were never cleaned up.
Bug introduced in 7807a9f09e.
This commit is contained in:
2
nvm.sh
2
nvm.sh
@@ -3906,7 +3906,7 @@ nvm() {
|
||||
nvm_echo "${NVM_SUCCESS_MSG}"
|
||||
|
||||
# rm any aliases that point to uninstalled version.
|
||||
for ALIAS in $(nvm_grep -l "${VERSION}" "$(nvm_alias_path)/*" 2>/dev/null); do
|
||||
for ALIAS in $(nvm_grep -l "${VERSION}" "$(nvm_alias_path)"/* 2>/dev/null); do
|
||||
nvm unalias "$(command basename "${ALIAS}")"
|
||||
done
|
||||
;;
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
#!/bin/sh
|
||||
|
||||
die() { echo "$@" >&2; exit 1; }
|
||||
|
||||
set -ex
|
||||
|
||||
: nvm.sh
|
||||
\. ../../nvm.sh
|
||||
\. ../common.sh
|
||||
|
||||
make_fake_node v0.0.1
|
||||
|
||||
nvm alias test_alias v0.0.1
|
||||
|
||||
# Verify alias was created
|
||||
[ -f "$(nvm_alias_path)/test_alias" ] || die "alias file should exist before uninstall"
|
||||
|
||||
nvm uninstall v0.0.1
|
||||
|
||||
# Verify the version directory was removed
|
||||
[ ! -d "$(nvm_version_path v0.0.1)" ] || die "version directory should be removed"
|
||||
|
||||
# Verify the alias was cleaned up
|
||||
[ ! -f "$(nvm_alias_path)/test_alias" ] || die "alias file should be removed after uninstalling the version it points to"
|
||||
Reference in New Issue
Block a user