about summary refs log tree commit diff stats
path: root/hm/soispha/conf/lf/commands/scripts/trash.sh
diff options
context:
space:
mode:
Diffstat (limited to 'hm/soispha/conf/lf/commands/scripts/trash.sh')
-rwxr-xr-xhm/soispha/conf/lf/commands/scripts/trash.sh28
1 files changed, 28 insertions, 0 deletions
diff --git a/hm/soispha/conf/lf/commands/scripts/trash.sh b/hm/soispha/conf/lf/commands/scripts/trash.sh
new file mode 100755
index 00000000..4da188e5
--- /dev/null
+++ b/hm/soispha/conf/lf/commands/scripts/trash.sh
@@ -0,0 +1,28 @@
+#! /usr/bin/env dash
+
+# shellcheck source=/dev/null
+SHELL_LIBRARY_VERSION="2.0.13" . %SHELL_LIBRARY_PATH
+
+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";
+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