Check permissions in shell rather than using find -exec

Luke Childs 2016-04-19 01:40:16 +01:00
parent 5970a06b19
commit 3a2d35f167
1 changed files with 12 additions and 2 deletions

14
nvm.sh
View File

@ -1830,8 +1830,18 @@ nvm() {
fi fi
# Check version dir permissions # Check version dir permissions
local FILES_WITHOUT_WRITE_PERMISIONS="$(find "$VERSION_PATH" -exec [ ! -w "{}" ] \; -exec echo "{}" \;)" local PERMISSIONS_OK=true
if [ "$FILES_WITHOUT_WRITE_PERMISIONS" ]; then 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 '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 '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 >&2 echo