40 lines
1.1 KiB
Plaintext
40 lines
1.1 KiB
Plaintext
#compdef scl
|
|
|
|
local curcontext="$curcontext" dashes ret=1
|
|
local -a state line force alts cmd
|
|
|
|
[[ $words[2] = deregister ]] &&
|
|
force=( '--force[deregister even SCL installed as packages]' )
|
|
|
|
_arguments -C $force \
|
|
'(- 1)'{-l,--list}'[list installed software collections or packages within a collection]' \
|
|
'(-l --list)1:action:(enable run load unload list-collections list-enabled list-packages man register deregister)' \
|
|
'(- *)--help' \
|
|
'(-)*:collections:->collections' && ret=0
|
|
|
|
if [[ -n $state ]]; then
|
|
(( $#line > 1 )) && curcontext="${curcontext%:*}-$line[1]:"
|
|
if [[ $line[1] = register ]]; then
|
|
_directories -P / -W /
|
|
return
|
|
fi
|
|
if (( ${dashes:=$words[(I)--]} )); then
|
|
shift dashes words
|
|
(( CURRENT -= dashes ))
|
|
_normal
|
|
return
|
|
fi
|
|
if [[ $CURRENT -gt 3 && $words[CURRENT] = - ]]; then
|
|
compadd - --
|
|
return
|
|
fi
|
|
[[ $line[1] = enable && $CURRENT -gt 3 ]] &&
|
|
cmd='command:command:_cmdstring'
|
|
|
|
_alternative 'collections:collection:compadd
|
|
$(_call_program collections "${words[1]} list-collections || ${words[1]} -l")' \
|
|
$cmd && ret=0
|
|
fi
|
|
|
|
return ret
|