about summary refs log blame commit diff stats
path: root/modules/home/conf/lf/commands/scripts/trash.sh
blob: f4878c496c6da0828814683010ed84310f744079 (plain) (tree)
1
2
3
4
5
                    
 
                             
                                                   
 









                              
 
                       
                         
 
                                                                         
                                                                                                          
                                                    
 
                                                                                  
                                   
                                                                                                                                                   
   
                                                                         
                                                                                                   
                  
  
            
#! /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"
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