diff options
Diffstat (limited to 'modules/home.legacy/conf/lf/commands/scripts/trash.sh')
-rwxr-xr-x | modules/home.legacy/conf/lf/commands/scripts/trash.sh | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/modules/home.legacy/conf/lf/commands/scripts/trash.sh b/modules/home.legacy/conf/lf/commands/scripts/trash.sh new file mode 100755 index 00000000..f4878c49 --- /dev/null +++ b/modules/home.legacy/conf/lf/commands/scripts/trash.sh @@ -0,0 +1,37 @@ +#! /usr/bin/env dash + +# shellcheck source=/dev/null +SHELL_LIBRARY_VERSION="2.1.2" . %SHELL_LIBRARY_PATH + +# shellcheck disable=SC2269 +f="$f" +# shellcheck disable=SC2269 +fx="$fx" +# shellcheck disable=SC2269 +fs="$fs" +# shellcheck disable=SC2269 +id="$id" + +trash_output=$(mktmp) +expected_error_output=$(mktmp) + +while read -r file; do + set -- "$@" "$file" +done <"$(tmp echo "$fx")" + +# TODO: why are we using trashy at all, when trash-cli can do everything? +# +# try trashy first, through nix because both trashy and trash-cli provide a trash command, which conflicts +nix run nixpkgs#trashy -- put "$@" 2>"$trash_output" + +# FIXME: Find a way, that does not depend on parsing an error message <2023-08-29> +cat <<EOF >"$expected_error_output" +[1;31merror:[0m Error during a \`trash\` operation: Unknown { description: "Path: '\"/.Trash-1000\"'. Message: Permission denied (os error 13)" } +EOF + +if [ "$(cat "$expected_error_output")" = "$(cat "$trash_output")" ]; then + warning "Deleting with trash-cli to the /.Trash folder" + # this file could not be trashed because it is on the tempfs volume, trash-cli can do this this + trash-put "$@" +fi +# vim: ft=sh |