| #!/usr/bin/env bash | 
| ###-begin-{{cmd}}-completion-### | 
| # | 
| # {{cmd}} command completion script | 
| # | 
| # Installation: {{cmd}} completion >> ~/.bashrc  (or ~/.zshrc) | 
| # Or, maybe: {{cmd}} completion > /usr/local/etc/bash_completion.d/{{cmd}} | 
| # | 
|   | 
| COMP_WORDBREAKS=${COMP_WORDBREAKS/=/} | 
| COMP_WORDBREAKS=${COMP_WORDBREAKS/@/} | 
| export COMP_WORDBREAKS | 
|   | 
| if complete &>/dev/null; then | 
|   _{{cmd}}_completion () { | 
|     local si="$IFS" | 
|     IFS=$'\n' COMPREPLY=($(COMP_CWORD="$COMP_CWORD" \ | 
|                            COMP_LINE="$COMP_LINE" \ | 
|                            COMP_POINT="$COMP_POINT" \ | 
|                            {{cmd}} completion -- "${COMP_WORDS[@]}" \ | 
|                            2>/dev/null)) || return $? | 
|     IFS="$si" | 
|   } | 
|   complete -F _{{cmd}}_completion {{cmd}} | 
| elif compctl &>/dev/null; then | 
|   _{{cmd}}_completion () { | 
|     local cword line point words si | 
|     read -Ac words | 
|     read -cn cword | 
|     let cword-=1 | 
|     read -l line | 
|     read -ln point | 
|     si="$IFS" | 
|     IFS=$'\n' reply=($(COMP_CWORD="$cword" \ | 
|                        COMP_LINE="$line" \ | 
|                        COMP_POINT="$point" \ | 
|                        {{cmd}} completion -- "${words[@]}" \ | 
|                        2>/dev/null)) || return $? | 
|     IFS="$si" | 
|   } | 
|   compctl -K _{{cmd}}_completion {{cmd}} | 
| fi | 
| ###-end-{{cmd}}-completion-### |