12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- #!/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-###
|