/usr/share/zsh/site-functions/_udiskie-umount is in udiskie 1.7.3-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 | #compdef udiskie-umount
# vim: ft=zsh sts=2 sw=2 ts=2
function _udiskie-umount
{
local context curcontext="$curcontext" line state ret=1
typeset -A opt_args
args=(
'(- *)'{-h,--help}"[show help]"
'(- *)'{-V,--version}"[show version]"
'(-q)'{-v,--verbose}"[more output]"
'(-v)'{-q,--quiet}"[less output]"
'(--use-udisks1 --use-udisks2)'--udisks-auto"[autodetect UDisks version]"
'(--udisks-auto --use-udisks2)'--use-udisks1"[use UDisks 1]"
'(--udisks-auto --use-udisks1)'--use-udisks2"[use UDisks 2]"
'(-C)'{-c,--config}"[set config file]:file:_files"
'(-c)'{-C,--no-config}"[don't use config file]"
'(*)'{-a,--all}"[unmount all devices]"
'(-D)'{-d,--detach}"[detach device]"
'(-d)'{-D,--no-detach}"[don't detach device]"
'(-E)'{-e,--eject}"[eject device]"
'(-e)'{-E,--no-eject}"[don't eject device]"
'(-F)'{-f,--force}"[recursive unmounting]"
'(-f)'{-F,--no-force}"[no recursive unmountinng]"
'(-L)'{-l,--lock}"[lock device after unmounting]"
'(-l)'{-L,--no-lock}"[don't lock device]"
'*:dev or dir:->udevordir'
)
_arguments -C -s "$args[@]" && ret=0
case "$state" in
udevordir)
local dev_tmp mp_tmp loop_tmp dev_detail
# "${(@f)X}" means to use lines as separators
dev_detail=( "${(@f)$(udiskie-info -a -o '{device_presentation}<:1:>{mount_path}<:2:>{is_filesystem}<:3:>{is_mounted}<:4:>{is_loop}<:5:>{loop_file}')}" )
# select: 'device_presentation'
dev_tmp=( ${dev_detail%%<:1:>*} )
# filter: 'is_filesystem' and 'is_mounted'
mp_tmp=( ${(M)dev_detail:#*<:2:>True<:3:>True<:4:>*} )
# select: 'mount_path'
mp_tmp=( ${mp_tmp##*<:1:>} )
mp_tmp=( ${mp_tmp%%<:2:>*} )
# filter: 'is_loop'
loop_tmp=( ${(M)dev_detail:#*<:3:>True<:5:>*} )
# select: 'mount_path'
loop_tmp=( ${loop_tmp##*<:5:>} )
_alternative \
'directories:mount point:_canonical_paths -A mp_tmp -N directories mount\ point' \
'device-paths: device path:_canonical_paths -A dev_tmp -N device-paths device\ path' \
'loop-files: loop file:_canonical_paths -A loop_tmp -N loop-files loop\ file' \
&& ret=0
;;
esac
return ret
}
_udiskie-umount "$@"
|