32 lines
775 B
Bash
32 lines
775 B
Bash
#!/bin/zsh
|
|
# Call me paranoid, but I want to be really certain antidote will never rm something it
|
|
# shouldn't. This function wraps rm to double check that any paths being removed are
|
|
# valid. If it's not in your $HOME or $TMPDIR, we need to block it.
|
|
|
|
#function __antidote_del {
|
|
emulate -L zsh; setopt local_options
|
|
|
|
local -a rmflags rmpaths
|
|
local p
|
|
|
|
while (( $# )); do
|
|
case "$1" in
|
|
--) shift; break ;;
|
|
-*) rmflags+=($1) ;;
|
|
*) break ;;
|
|
esac
|
|
shift
|
|
done
|
|
|
|
(( $# > 0 )) || return 1
|
|
|
|
for p in $@; do
|
|
p="${p:a}"
|
|
if [[ "$p" != $HOME/* ]] && [[ "$p" != ${TMPDIR:-/tmp}/* ]]; then
|
|
print -ru2 -- "antidote: Blocked attempt to rm path: '$p'."
|
|
return 1
|
|
fi
|
|
done
|
|
|
|
command rm ${rmflags[@]} -- "$@"
|
|
#}
|