69 lines
2.4 KiB
Plaintext
69 lines
2.4 KiB
Plaintext
#compdef udisksctl
|
|
|
|
# Completion function for zsh
|
|
|
|
local curcontext="$curcontext" cmd="$words[1]" params ca_opts
|
|
local -i i ret=1
|
|
local -a state state_descr line expl cmds opts vals
|
|
|
|
if (( CURRENT == 2 )); then
|
|
cmds=( $(_call_program commands $cmd complete "$cmd" ${#cmd}) )
|
|
_wanted commands expl "command" compadd -M "r:|-=* r:|=*" -a cmds
|
|
else
|
|
curcontext="${curcontext%:*}-${words[2]}:"
|
|
opts=( $(_call_program options $cmd complete "${(q)words[1,2]}" ${(c)#words[1,2]}) )
|
|
for ((i=$#opts;i;i--)); do
|
|
case $opts[i] in
|
|
--block-device)
|
|
opts[i]=( '(-b --block-device -d --drive -p --object-path)'{-b,--block-device=}'[specify block device]:block device:->block-devices' )
|
|
;;
|
|
--drive)
|
|
opts[i]=( '(-d --drive -b --block-device -p --object-path)'{-d,--drive=}'[specify drive]:drive:->drives' )
|
|
;;
|
|
--force)
|
|
opts[i]=( '(-f --force)'{-f,--force} )
|
|
;;
|
|
--file)
|
|
opts[i]=( '(-f --file)'{-f,--file=}'[specify filename]:file:_files' )
|
|
;;
|
|
--filesystem-type)
|
|
opts[i]=( '(-t --filesystem-type)'{-t,--filesystem-type=}'[specify filesystem type to use]: :_file_systems' )
|
|
;;
|
|
--no-user-interaction)
|
|
opts[i]=( "--no-user-interaction[don't authenticate the user if needed]" )
|
|
;;
|
|
--offset)
|
|
opts[i]=( '(-o --offset)'{-o,--offset}'[specify offset]:offset (bytes)' )
|
|
;;
|
|
--object-path)
|
|
opts[i]=( '(-p --object-path -b --block-device -d --drive)'{-p,--object-path=}'[specify object]:object path:->object-paths' )
|
|
;;
|
|
--options)
|
|
opts[i]=( '(-o --options)'{-o,--options=}'[specify mount options]:mount options' )
|
|
;;
|
|
--read-only)
|
|
opts[i]=( '(-r --read-only)'{-r,--read-only} )
|
|
;;
|
|
--size)
|
|
opts[i]=( '(-s --size)'{-s,--size=}'[specify size]:size (bytes)' )
|
|
;;
|
|
esac
|
|
done
|
|
shift words
|
|
(( CURRENT-- ))
|
|
_arguments -S -C '(-)--help[display usage information]' $opts && ret=0
|
|
|
|
if [[ -n $state ]]; then
|
|
params="$cmd $words[1] "
|
|
case $state in
|
|
block-devices) params+="--block-device" ca_opts=( -M "r:|/=* r:|=*" ) ;;
|
|
drives) params+="--drive" ca_opts=( -M "r:|_=* r:|=*" ) ;;
|
|
object-paths) params+="--object-path" ca_opts=( -f -M "r:|/=* r:|=*" ) ;;
|
|
esac
|
|
vals=( $(_call_program values $cmd complete "${(q)params}" $#params) )
|
|
_description values expl $state_descr
|
|
compadd "$expl[@]" $ca_opts -a vals && ret=0
|
|
fi
|
|
return ret
|
|
fi
|