diff --git a/dots/bin/tp.sh b/dots/bin/tp.sh index a3e3372..2e7f963 100755 --- a/dots/bin/tp.sh +++ b/dots/bin/tp.sh @@ -9,6 +9,10 @@ if [ $# -lt 1 ]; then exit 1 fi +lfMultiSelectHandler.sh trash-put $@ + +exit 0 + sync_dir_sym=/home/${USER}/syncDir syncdir_env_var=SYNCDIR_${HOSTNAME} sync_dir=${!syncdir_env_var} # '!' to use the name and not the value diff --git a/dots/bin/tp.sh.orig b/dots/bin/tp.sh.orig new file mode 100755 index 0000000..a3e3372 --- /dev/null +++ b/dots/bin/tp.sh.orig @@ -0,0 +1,74 @@ +#!/usr/bin/env bash + +# klevstul :: 24.06 + +this_file_name=`basename "$0"` +if [ $# -lt 1 ]; then + echo "error: path to file is missing." + echo "usage: '$this_file_name [path_to_file]'" + exit 1 +fi + +sync_dir_sym=/home/${USER}/syncDir +syncdir_env_var=SYNCDIR_${HOSTNAME} +sync_dir=${!syncdir_env_var} # '!' to use the name and not the value +cwd=$(pwd) + +# nifty for debugging: +log_file="/home/poq/syncDir/0_downloads/tp.log" +#echo +#echo "debugging values:" +#echo "input args: $@" +#for i in "$@"; do echo " $i"; done; +#echo "sync_dir_sym: ${sync_dir_sym}" +#echo "sync_dir: ${sync_dir}" +#echo "cwd: ${cwd}" +#echo +#echo "---" >> ${log_file} +#echo "$@" >> ${log_file} + +# loop through all files to delete +for input_file in "$@"; do + + # lf file manager sends multiple files as one input parameter, split by with newlines + # https://superuser.com/questions/284187/bash-iterating-over-lines-in-a-variable + declare -a theArray + + while read -r line + do + theArray+=("$line") + done <<< "$input_file" + + for line in "${theArray[@]}" + do + bare_line=${line} + #echo "$line" >> ${log_file} + + # if input file has no path specified + if [[ ${line} != *"/"* ]]; then + line="${cwd}/${line}" + fi + + # substitute parts of the old path, from using the symlink folder, to the non-symlink folder + # example: + # "/home/poq/syncDir/0_downloads/topBanner.jpg" > "/home/poq/nextcloud/syncDir/0_downloads/topBanner.jpg" + # + # please note, if a file outside of the sync directory is tp'ed, then the replacement will not happen. + # this is great, as trash-put should work normally outside of the sync-dir. and for files residing outside, + # no replacemant should be done. + + # new_file=${original_string//old_substring/new_substring} + new_file=${line//$sync_dir_sym/$sync_dir} + + if [[ -f "${new_file}" ]] || [[ -d "${new_file}" ]] ; then + #trash-put "${new_file}" + trash-put "${bare_line}" + #echo "trash-put ${new_file}" + #echo "${new_file}" >> ${log_file} + else + echo "error: unable to delete \"${new_file}\"" + fi + + done + +done