Warning, /sdk/pology/completion/bash/pology is written in an unsupported language. File is not indexed.

0001 # Bash completion for Pology scripts.
0002 
0003 # Functionality depending on Bash version.
0004 _wcompopt=0
0005 _globnospace="-o nospace"
0006 if [[ ${BASH_VERSINFO[0]} -ge 4 ]]; then
0007     _wcompopt=1
0008     _globnospace=
0009 fi
0010 
0011 shopt -s extglob
0012 
0013 
0014 _posieve()
0015 {
0016     local i cur prev opts prefix sieves sieve
0017     local IFS=$'\n'
0018 
0019     COMPREPLY=()
0020 
0021     [[ -z "$_posieve_options" ]] && _posieve_options=`posieve --list-options`
0022     [[ -z "$_posieve_sieves" ]] && _posieve_sieves=`posieve --list-sieve-names`
0023 
0024     # Check if sieves were already issued.
0025     i=1
0026     while [[ $i -lt $COMP_CWORD ]]; do
0027         prev="${COMP_WORDS[i]}"
0028         if [[ $prev =~ , ]] || [[ $prev == *.py ]]; then
0029             sieves=$prev
0030         else
0031             for sieve in $_posieve_sieves; do
0032                 if [[ $sieve == $prev ]]; then
0033                     sieves=$prev
0034                     break
0035                 fi
0036             done
0037         fi
0038         [[ -n "$sieves" ]] && break
0039         i=$((i + 1))
0040     done
0041 
0042     # Reassemble parameters if current sieve chain is different from previous.
0043     if [[ -n "$sieves" ]] && [[ $_posieve_lastsieves != $sieves ]]; then
0044         _posieve_lastsieves=$sieves
0045         _posieve_params=`posieve $sieves --list-sieve-params`
0046         # Add trailing space to non-colon ending parameters.
0047         _posieve_params=${_posieve_params//$'\n'/ $'\n'}' '
0048         _posieve_params=${_posieve_params//: /:}
0049         # Clean parameters, without trailing colons.
0050         _posieve_cparams=${_posieve_params//:/}
0051     fi
0052 
0053     [[ $_wcompopt == 1 ]] && compopt -o nospace
0054 
0055     cur="${COMP_WORDS[COMP_CWORD]}"
0056     prev="${COMP_WORDS[COMP_CWORD - 1]}"
0057     if    ( [[ $cur == -s* ]] || [[ $prev == -s ]] ) && [[ $cur != *:* ]] \
0058        && [[ -n "$sieves" ]]; \
0059     then
0060         if [[ $cur == -* ]]; then
0061             prefix=${cur%%s*}s
0062             cur=${cur#*s}
0063         fi
0064         COMPREPLY=($(compgen -W "$_posieve_params" -P "$prefix" -- $cur))
0065     elif ( [[ $cur == -S* ]] || [[ $prev == -S ]] ) && [[ -n "$sieves" ]]; then
0066         if [[ $cur == -* ]]; then
0067             prefix=${cur%%S*}S
0068             cur=${cur#*S}
0069         fi
0070         COMPREPLY=($(compgen -W "$_posieve_cparams" -P "$prefix" -- $cur))
0071     elif [[ $cur == -* ]] ; then
0072         COMPREPLY=($(compgen -W "$_posieve_options" -S " " -- $cur))
0073     elif [[ -z "$sieves" ]] ; then
0074         if [[ $cur =~ , ]]; then
0075             prefix=${cur%,*},
0076             cur=${cur##*,}
0077         fi
0078         COMPREPLY=($(compgen -W "$_posieve_sieves" -P "$prefix" -S " " -- $cur))
0079     else
0080         # Turn on trailing space after completion on files.
0081         [[ $_wcompopt == 1 ]] && compopt +o nospace
0082     fi
0083 }
0084 _posieve_options=
0085 _posieve_sieves=
0086 _posieve_lastsieves=
0087 complete -F _posieve -o default $_globnospace posieve posieve.py
0088 
0089 
0090 _poediff()
0091 {
0092     local i cur prev opts prefix
0093 
0094     COMPREPLY=()
0095 
0096     [[ -z "$_poediff_options" ]] && _poediff_options=`poediff --list-options`
0097     [[ -z "$_poediff_vcs" ]] && _poediff_vcs=`poediff --list-vcs`
0098 
0099     cur="${COMP_WORDS[COMP_CWORD]}"
0100     prev="${COMP_WORDS[COMP_CWORD - 1]}"
0101     if [[ $cur == -*([[:alnum:]])c* ]] || [[ $prev == -*([[:alnum:]])c ]]; then
0102         if [[ $cur == -* ]]; then
0103             prefix=${cur%%c*}c
0104             cur=${cur#*c}
0105         fi
0106         COMPREPLY=($(compgen -W "$_poediff_vcs" -P "$prefix" -- $cur))
0107     elif [[ $cur == -* ]] ; then
0108         COMPREPLY=($(compgen -W "$_poediff_options" -- $cur))
0109     fi
0110 }
0111 _poediff_options=
0112 _poediff_vcs=
0113 complete -F _poediff -o default poediff poediff.py
0114