From 5ec4695033b9a3a57492b60439d9e3a922d9bcd1 Mon Sep 17 00:00:00 2001 From: mirsella Date: Mon, 10 Jul 2023 12:50:48 +0200 Subject: github #99: _trash: add completion for trash-d https://github.com/rushsteve1/trash-d --- Completion/Unix/Command/_trash | 57 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 Completion/Unix/Command/_trash (limited to 'Completion/Unix/Command') diff --git a/Completion/Unix/Command/_trash b/Completion/Unix/Command/_trash new file mode 100644 index 000000000..bef6e5838 --- /dev/null +++ b/Completion/Unix/Command/_trash @@ -0,0 +1,57 @@ +#compdef trash + +local variant + +_pick_variant -r variant ali='(Rantakari|hasseg)' steven='(Steven|vanZyl)' other --version + +case $variant in + ali) + # The hidden options here are options to rm that trash silently (and + # undocumentedly) ignores. Some options are not made mutually exclusive where + # they technically could be, for compatibility with aliases, etc. + _arguments -s -S -A '-*' : \ + '!-'{d,f,i,r,P,R,W} \ + '(: * -F -l -v)-e[empty trash]' \ + '-F[use Finder instead of system API]' \ + '(: * -e -F -s -y)-l[list items in trash]' \ + '(: * -F -l -v)-s[securely empty trash]' \ + '-v[increase output verbosity]' \ + '-y[skip confirmation prompts (with -e or -s)]' \ + '*: :_files' + return + ;; + steven) + local trash_dir="${TRASH_D_DIR:-${XDG_DATA_HOME:-$HOME/.local/share}/Trash}/files" + + local -a args=( + '(-v --verbose)'{-v,--verbose}'[print more information]' + + + options + '(-d --dir)'{-d,--dir}'[remove empty directories]' + '(-r -R --recursive)'{-r,-R,--recursive}'[delete directories and their contents]' + '--rm[permanently delete files]' + + + '(interactive)' + {-i,--interactive}'[ask before each deletion]' + {-I,--interactive-once}'[ask before deleting 3 or more files, or deleting recursively]' + {-f,--force}'[don'\''t prompt and ignore errors]' + + + '(actions)' + '(options input info interactive)--list[list out the files in the trash]' + '(options input info interactive)--orphans[list orphaned files in the trash]' + '(options input info)--restore[restore specified file from the trash]:trashed file:_files -W "$trash_dir"' + '(options input info)--delete[delete specified file from the trash]:trashed file:_files -W "$trash_dir"' + '(options input info)--empty[empty the trash bin]' + + + info + '(- *)'{-h,--help}'[display help information]' + '(- *)--version[output the version and exit]' + + + input + '(actions)*: :_files' + ) + _arguments -s -S : $args + return + ;; + *) _default ;; +esac -- cgit 1.4.1