dotfiles/.local/bin/scripts/rd

29 lines
1.1 KiB
Plaintext
Raw Normal View History

2022-01-05 16:53:06 +00:00
#!/bin/sh -e
# Remove recursively safely
2021-11-09 04:37:07 +00:00
case "$1" in ([0-9]) depth=$1; shift;; esac
2022-03-15 15:56:22 +00:00
for f in "${@:-$PWD}"
do
2022-01-25 12:55:23 +00:00
test -w "$(dirname "$f")" && elevate="" || elevate=sudo
2022-01-05 16:53:06 +00:00
if test -d "$f"
then
if test -e "$f/.git" || test -e "$f/packed-refs"
2022-01-05 16:53:06 +00:00
then echo -n "Force delete git project $f? "
read answer
test "$answer" = "y" &&
$elevate rm -rf "$f" &&
2022-05-10 07:25:01 +00:00
continue
fi
2024-01-12 16:53:41 +00:00
# Clean empty files
$elevate find -name '.thumbnails' -printf 'Pre-cleaning %p\n' -exec rm -r {} +
$elevate find -H "$f" -maxdepth $(expr 1 \& "$f" = "/" \| 5 \& $# \> 0 \| 3) \( -name '.stfolder' -o -name '.*keep' -o -name '*.py' -o -name 'nodelay.txt' -o -name '.git' -o -name 'tmp' -o -name '.nomedia' -o -name '__init__.py' -o -name '*ignore' -o -name 'instalee' \) \( -type d -o -type f \) -prune -o -empty -printf 'Removing empty %p\n' #-exec rm -d {} +
2022-12-13 12:25:04 +00:00
# $elevate find -H "$f" -maxdepth $(expr 1 \& "$f" = "/" \| 5 \& $# \> 0 \| 4) -type d -empty -name .stfolder -exec rm -div {} \;
test $# -eq 0 && exit $?
if test -e "$f"; then
echo -n "$f ($(ls -A "$f" | head -3 | paste -s -d' ')) " >&2 &&
$elevate rm -rI "$f"
fi
2022-01-05 16:53:06 +00:00
else $elevate rm -i "$f"
fi
done