Browse Source

Use Finder to trash files to enable Put Back.

Though AppleScript is slow, Put Back data is stored in
~/.Trash/.DS_Store, and there is no way to write to it
from the shell at this time.

The minimum Zsh version has been incremented to 4.3.10 to use
the 'a' modifier to convert a relative path into a full path.
master
Sorin Ionescu 13 years ago
parent
commit
28da8f916b
  1. 2
      init.zsh
  2. 29
      plugins/osx/functions/trash

2
init.zsh

@ -1,7 +1,7 @@ @@ -1,7 +1,7 @@
# Initializes Oh My Zsh.
# Check for the minimum supported version.
min_zsh_version=4.3.9
min_zsh_version='4.3.10'
if ! autoload -Uz is-at-least || ! is-at-least "$min_zsh_version"; then
print "omz: The minimum supported Zsh version is $min_zsh_version."
fi

29
plugins/osx/functions/trash

@ -1,13 +1,20 @@ @@ -1,13 +1,20 @@
local trash_dir="${HOME}/.Trash"
local trash_item
local item
for item in "${@}"; do
if [[ -e "${item}" ]] || [[ -L "${item}" ]]; then
trash_item="${trash_dir}/${item:t}"
if [[ -e "${trash_item}" ]] || [[ -L "${trash_item}" ]]; then
trash_item="${trash_item} $(date "+%H-%M-%S")"
fi
mv -f "${item}" "${trash_item}"
print -N "${@:a}" | xargs -0 osascript -e '
on run theFilePaths
tell application "Finder"
set thePOSIXFiles to {}
repeat with aFilePath in theFilePaths
set aPOSIXFile to aFilePath as POSIX file
if exists aPOSIXFile
set end of thePOSIXFiles to aPOSIXFile
end if
end repeat
move every item of thePOSIXFiles to trash
end tell
end run
' &>/dev/null
if (( $? != 0)); then
print "$0: failed to move one or more items" >&2
return 1
fi
done

Loading…
Cancel
Save