From 3a2d35f1670f170167c773cc1f6a23196d58be5e Mon Sep 17 00:00:00 2001 From: Luke Childs Date: Tue, 19 Apr 2016 01:40:16 +0100 Subject: [PATCH] Check permissions in shell rather than using find -exec --- nvm.sh | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/nvm.sh b/nvm.sh index b712838..926ca35 100755 --- a/nvm.sh +++ b/nvm.sh @@ -1830,8 +1830,18 @@ nvm() { fi # Check version dir permissions - local FILES_WITHOUT_WRITE_PERMISIONS="$(find "$VERSION_PATH" -exec [ ! -w "{}" ] \; -exec echo "{}" \;)" - if [ "$FILES_WITHOUT_WRITE_PERMISIONS" ]; then + local PERMISSIONS_OK=true + check_file_permissions() { + for FILE in $1/* $1/.[!.]* $1/..?* ; do + if [ -d "$FILE" ]; then + check_file_permissions "$FILE" + elif [ -e "$FILE" ]; then + [ ! -w "$FILE" ] && PERMISSIONS_OK=false + fi + done + } + check_file_permissions "$VERSION_PATH" + if [ "$PERMISSIONS_OK" = false ]; then >&2 echo 'Cannot uninstall, incorrect permissions on installation folder.' >&2 echo 'This is usually caused by running `npm install -g` as root. Run the following command as root to fix the permissions and then try again.' >&2 echo