diff options
author | Oliver Kiddle <opk@zsh.org> | 2015-10-31 19:10:27 +0100 |
---|---|---|
committer | Oliver Kiddle <opk@zsh.org> | 2015-10-31 19:11:16 +0100 |
commit | 098319df9922441ca70c233195151cb1965556a8 (patch) | |
tree | eedf8477035f5039c60d1386f498408904efddd9 /Completion/Redhat/Command/_scl | |
parent | 607a7a85b65527fb98e1a47c02dca6a777595eec (diff) | |
download | zsh-098319df9922441ca70c233195151cb1965556a8.tar.gz zsh-098319df9922441ca70c233195151cb1965556a8.tar.xz zsh-098319df9922441ca70c233195151cb1965556a8.zip |
37028: new scl completion
Diffstat (limited to 'Completion/Redhat/Command/_scl')
-rw-r--r-- | Completion/Redhat/Command/_scl | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/Completion/Redhat/Command/_scl b/Completion/Redhat/Command/_scl new file mode 100644 index 000000000..e1a4b69db --- /dev/null +++ b/Completion/Redhat/Command/_scl @@ -0,0 +1,38 @@ +#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 register deregister)' \ + '(-)*: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]} -l)' \ + $cmd && ret=0 +fi + +return ret |