diff options
Diffstat (limited to 'bin')
| -rwxr-xr-x | bin/rm | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/bin/rm b/bin/rm new file mode 100755 index 0000000..f3a604c --- /dev/null +++ b/bin/rm @@ -0,0 +1,38 @@ +#!/bin/bash + +if [ ! -t 1 ]; then + # shellcheck disable=SC2068 + exec /bin/rm $@ +fi + +# stop me from being stupid + +OPTIND=0 +for o in "$@"; do + OPTIND+=1 + if [ -d "$o" ] || [ -f "$o" ]; then + break + fi + [ "$o" = "-r" ] && recurse=1 + [ "$o" = "-f" ] && force=1 + [ "$o" = "-rf" ] && force=1 && recurse=1 +done + +if [ -n "${force}" ] && [ -n "${recurse}" ]; then + tput setaf 1 + ls -l "${!OPTIND}" >&2 + echo "!" + echo "! recursive force not allowed" >&2 + echo "!" + tput sgr0 + exit 1 +fi + +if [ -n "${recurse}" ]; then + tput setaf 1 + ls -l "${!OPTIND}" >&2 + tput sgr0 +fi + +# shellcheck disable=SC2068 +exec /bin/rm -I --one-file-system $@ |