about summary refs log tree commit diff stats
path: root/home-manager/config/lf/commands/scripts/trash
diff options
context:
space:
mode:
Diffstat (limited to 'home-manager/config/lf/commands/scripts/trash')
-rwxr-xr-xhome-manager/config/lf/commands/scripts/trash22
1 files changed, 22 insertions, 0 deletions
diff --git a/home-manager/config/lf/commands/scripts/trash b/home-manager/config/lf/commands/scripts/trash
new file mode 100755
index 00000000..9e2e6aa4
--- /dev/null
+++ b/home-manager/config/lf/commands/scripts/trash
@@ -0,0 +1,22 @@
+#! /usr/bin/env dash
+# shellcheck disable=SC2086
+# shellcheck source=/dev/null
+# . ~/.local/lib/shell/lib
+. %SHELL_LIBRARY_PATH
+
+trash_output=$(mktmp);
+expected_error_output=$(mktmp);
+
+# try trashy first
+nix run nixpkgs#trashy -- put "$fx" 2> $trash_output;
+
+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
+    printf "%s" "$fx" | tr '\n' ' ' | xargs trash-put;
+fi
+# vim: ft=sh