osx: Add trash function

This commit is contained in:
mattmc3 2023-12-12 11:59:16 -05:00 committed by Indrajit Raychaudhuri
parent 6bf4505b33
commit 085ab11646

View file

@ -0,0 +1,31 @@
#
# Moves files to the macOS trash.
#
# function trash {
emulate -L zsh
setopt LOCAL_OPTIONS EXTENDED_GLOB
local file
local -a files=()
for file in $@; do
if [[ -e $file ]]; then
# ':a' gets the full path (do not use ':A', which would resolve symlinks)
files+=("the POSIX file \"${file:a}\"")
else
print "trash: No such file or directory '$file'." >&2
return 1
fi
done
if (( $#files == 0 )); then
print 'usage: trash <files...>' >&2
return 64 # Match rm's return code.
fi
# Join file list with commas, and tell Finder to trash that list.
local file_list="${(pj., .)files}"
osascript 2>&1 > /dev/null -e "tell app \"Finder\" to move { "${file_list}" } to trash"
# }