minor changes
Some checks failed
continuous-integration/drone/push Build is failing

This commit is contained in:
Kim Oliver Drechsel 2021-10-28 02:02:36 +02:00
parent 59cb5e3f97
commit 581c635916

View File

@ -1,18 +1,21 @@
#!/bin/bash #!/usr/bin/env bash
# Trash Functions # Trash Bin Functionss
# On Github: https://github.com/kimdre/trash.sh
TRASH_DIR="$HOME"/.trash TRASH_DIR="$HOME/.trash"
FILE_PATHS_FILE="$TRASH_DIR/.filepaths"
[ ! -d "$TRASH_DIR" ] && mkdir "$TRASH_DIR" [ ! -d "$TRASH_DIR" ] && mkdir "$TRASH_DIR"
FILE_PATHS_FILE="$TRASH_DIR/.filepaths"
[ ! -f "$FILE_PATHS_FILE" ] && touch "$FILE_PATHS_FILE" [ ! -f "$FILE_PATHS_FILE" ] && touch "$FILE_PATHS_FILE"
usage() { usage() {
local func_args="$1" local func_args="$1"
if [[ $func_args == 0 ]]; if [[ $func_args == 0 ]];
then echo -e "At least one argument required:\ncommand FILE1 DIR2 ..." then echo -e "At least one file/directory as argument required:\nExamples: FILE.txt /DIR/FILE.txt SUB_DIR/FILE.* /DIR/* DIR/DIR ..."
exit return 1
else
return 0
fi fi
} }
@ -21,13 +24,13 @@ trash_list() {
} }
trash_put() { trash_put() {
usage "$#" usage "$#" && {
for FILE in $@; do for FILE in $@; do
# Store old filepath for later restore # Store old filepath for later restore
echo "$FILE $(readlink -f "$FILE")" >>"$FILE_PATHS_FILE" echo "$FILE $(readlink -f "$FILE")" >>"$FILE_PATHS_FILE"
done done
mv -v $* "$TRASH_DIR/" mv -v $* "$TRASH_DIR/"
}
} }
trash_empty() { trash_empty() {
@ -36,8 +39,7 @@ trash_empty() {
} }
trash_restore() { trash_restore() {
usage "$#" usage "$#" && {
for FILE_TO_RESTORE in "$@"; do for FILE_TO_RESTORE in "$@"; do
# Get old filepath for restore # Get old filepath for restore
OLD_PATH=$(grep "$FILE_TO_RESTORE" "$FILE_PATHS_FILE" | cut -d ' ' -f2) OLD_PATH=$(grep "$FILE_TO_RESTORE" "$FILE_PATHS_FILE" | cut -d ' ' -f2)
@ -48,11 +50,11 @@ trash_restore() {
# Replace / with \/ from string and remove filepath from file after move was successful # Replace / with \/ from string and remove filepath from file after move was successful
sed -i "/${FILE_TO_RESTORE////\\/}/d" "$FILE_PATHS_FILE" sed -i "/${FILE_TO_RESTORE////\\/}/d" "$FILE_PATHS_FILE"
done done
}
} }
trash_rm() { trash_rm() {
usage "$#" usage "$#" && {
for FILE_TO_REMOVE in "$@"; do for FILE_TO_REMOVE in "$@"; do
if ! echo "$FILE_TO_REMOVE" | grep "$HOME/.trash" if ! echo "$FILE_TO_REMOVE" | grep "$HOME/.trash"
then FILEPATH_TO_REMOVE="$HOME/.trash/$FILE_TO_REMOVE" then FILEPATH_TO_REMOVE="$HOME/.trash/$FILE_TO_REMOVE"
@ -64,6 +66,7 @@ trash_rm() {
echo "$FILE_TO_REMOVE is not in Trash." && false echo "$FILE_TO_REMOVE is not in Trash." && false
fi fi
done done
}
} }
alias trash='trash_put' alias trash='trash_put'