dots2/.antidote/functions/__antidote_del

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[@]} -- "$@"
#}