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