mirror of
https://github.com/LukeSmithxyz/voidrice.git
synced 2026-03-20 01:37:45 +01:00
Create trash-put
A trashing script that is near xdg trash spec compliant. The only thing missing is updating a file listing directory sizes
This commit is contained in:
parent
130e200da1
commit
d63a37f7ad
28
.local/share/trash-put
Normal file
28
.local/share/trash-put
Normal file
@ -0,0 +1,28 @@
|
||||
#!/bin/sh
|
||||
set -e
|
||||
[ -e "$1" ] || exit 1
|
||||
getfsroot() {
|
||||
printf "%s" "$(df "$1" --output=target | tail -1)"
|
||||
}
|
||||
|
||||
filepath="$(realpath "$1")"
|
||||
filename="$(basename "$1")"
|
||||
fsroot="$(getfsroot "$1")"
|
||||
[ "$fsroot" = "$(getfsroot "${XDG_DATA_HOME:-$HOME/.local/share}")" ] \
|
||||
&& basedir="${XDG_DATA_HOME:-$HOME/.local/share}/Trash" \
|
||||
|| basedir="${fsroot}/.Trash"
|
||||
infodir="$basedir/info"
|
||||
filedir="$basedir/files"
|
||||
|
||||
mkdir -p "$infodir" 1>/dev/null 2>&1
|
||||
mkdir -p "$filedir" 1>/dev/null 2>&1
|
||||
find "$filedir" -regex ".*$filename.*" | grep -oP '\d' | sort -n | tail -1 | (
|
||||
ext=$(($(cat /dev/stdin)+1))
|
||||
filedest="$filedir/$filename.~${ext:-1}~";
|
||||
command mv -f "$filepath" "$filedest";
|
||||
cat <<EOF > "$infodir/$(basename "$filedest")"
|
||||
[Trash Info]
|
||||
Path=$filepath
|
||||
DeletionDate=$(date +%Y%m%dT%T)
|
||||
EOF
|
||||
)
|
||||
Loading…
x
Reference in New Issue
Block a user