12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- #!/usr/bin/env bash
- # wrapper for smaller output from __rvm_log_command
- __rvm_rm_rf()
- {
- __rvm_rm_rf_verbose "$@"
- }
- #
- # \command \rm -rf with *some* safeguards in place.
- #
- __rvm_rm_rf_verbose()
- {
- \typeset target
- target="${1%%+(/|.)}"
- #NOTE: RVM Requires extended globbing shell feature turned on.
- if
- [[ -n "${ZSH_VERSION:-}" ]]
- then
- \builtin setopt extendedglob
- elif
- [[ -n "${BASH_VERSION:-}" ]]
- then
- \builtin shopt -s extglob
- else
- rvm_error "What the heck kind of shell are you running here???"
- fi
- case "${target}" in
- (*(/|.)@(|/Applications|/Developer|/Guides|/Information|/Library|/Network|/System|/User|/Users|/Volumes|/backups|/bdsm|/bin|/boot|/cores|/data|/dev|/etc|/home|/lib|/lib64|/mach_kernel|/media|/misc|/mnt|/net|/opt|/private|/proc|/root|/sbin|/selinux|/srv|/sys|/tmp|/usr|/var))
- rvm_debug "__rvm_rm_rf target is not valid - can not remove"
- return 1
- ;;
- (*)
- if
- [[ -z "${target}" ]]
- then
- rvm_debug "__rvm_rm_rf target not given"
- return 1
- elif
- [[ -d "${target}" ]] # directory
- then
- \command \rm -rf "${target}" ||
- {
- \typeset ret=$?
- rvm_debug "__rvm_rm_rf error removing target dir '${target}'."
- return $ret
- }
- elif
- [[ -f "${target}" || -L "${target}" ]] # file / broken symbolic link
- then
- \command \rm -f "${target}" ||
- {
- \typeset ret=$?
- rvm_debug "__rvm_rm_rf error removing target file/link '${target}'."
- return $ret
- }
- else
- rvm_debug "__rvm_rm_rf already gone: $*"
- fi
- ;;
- esac
- true # for OSX
- }
- # Cleans up temp folders for a given prefix ($1),
- # or the current process id.
- __rvm_cleanup_tmp()
- {
- if
- [[ -d "${rvm_tmp_path}/" ]]
- then
- case "${rvm_tmp_path%\/}" in
- *tmp)
- __rvm_rm_rf "${rvm_tmp_path}/${1:-$$}*"
- ;;
- esac
- fi
- true # for osx
- }
|