summaryrefslogtreecommitdiff
path: root/70_Trash.zsh
diff options
context:
space:
mode:
authorhugues <hugues@a0e5b806-a6f9-0310-978d-cbce73f8a913>2007-05-29 09:05:14 +0000
committerHugues Hiegel <hugues@hiegel.fr>2008-03-07 14:15:12 +0100
commite745ea917296afe95b338d2f4486d2990ae7d3ff (patch)
tree2c77f3a65e36b70e1b845686116fb5c96bdc8f76 /70_Trash.zsh
parent70b23c736dc7a75c7137d2568e8cdd7a3c2c77e3 (diff)
Gestion d'une corbeille... Géant. :)
git-svn-id: svn+ssh://hugues@maison/opt/svn/private/hugues@409 a0e5b806-a6f9-0310-978d-cbce73f8a913
Diffstat (limited to '70_Trash.zsh')
-rw-r--r--70_Trash.zsh62
1 files changed, 62 insertions, 0 deletions
diff --git a/70_Trash.zsh b/70_Trash.zsh
new file mode 100644
index 0000000..04aef8a
--- /dev/null
+++ b/70_Trash.zsh
@@ -0,0 +1,62 @@
+#!/bin/zsh
+##
+## Part of configuration files for Zsh4
+## AUTHOR: Hugues Hiegel <hugues@hiegel.fr>
+##
+## You are encouraged to use, modify, and redistribute
+## these files with or without this notice.
+##
+## NO WARRANTY PROVIDED, USE AT YOUR OWN RISKS
+##
+
+TRASH=$ZDOTDIR/.trash
+
+move_to_trash ()
+{
+ FOLDER=$TRASH/$PWD
+
+ for element in $@
+ do
+ if [ -e $element ]
+ then
+ echo "Deleting $element..."
+ mkdir -p $FOLDER/${element:h}
+ mv -f $element $FOLDER/${element:h}/.
+ fi
+ done
+}
+
+list_deleted_elements ()
+{
+ FOLDER=$TRASH/$PWD
+
+ if [ -d $FOLDER ]
+ then
+ for element in $(find $FOLDER -maxdepth 1 ! -wholename "$FOLDER" )
+ ls -lad $element | sed "s:$FOLDER/::"
+ else
+ echo "Nothing found in trash."
+ fi
+}
+
+undelete_from_trash ()
+{
+ FOLDER=$TRASH/$PWD
+
+ for element in $@
+ do
+ if [ -e $FOLDER/$element ]
+ then
+ echo "Getting back $element..."
+ mkdir -p ${element:h}
+ mv $FOLDER/$element .
+ rmdir --ignore-fail-on-non-empty -p $FOLDER
+ else
+ echo "Not found in trash: $element"
+ fi
+ done
+}
+
+alias delete='move_to_trash'
+alias undelete='undelete_from_trash'
+alias deleted='list_deleted_elements'