From fd9b0ecef4142a62b45404700ba1cff488f84a73 Mon Sep 17 00:00:00 2001 From: Benedikt Peetz Date: Thu, 23 May 2024 13:31:11 +0200 Subject: refactor(modules/home): Setup as "normal" NixOS module --- modules/home/conf/lf/commands/scripts/trash.sh | 37 ++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100755 modules/home/conf/lf/commands/scripts/trash.sh (limited to 'modules/home/conf/lf/commands/scripts/trash.sh') diff --git a/modules/home/conf/lf/commands/scripts/trash.sh b/modules/home/conf/lf/commands/scripts/trash.sh new file mode 100755 index 00000000..f4878c49 --- /dev/null +++ b/modules/home/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 <"$expected_error_output" +error: 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 -- cgit 1.4.1