# Bash completion for notmuch # # Copyright © 2009 Carl Worth # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see http://www.gnu.org/licenses/ . # # Author: Carl Worth # # Based on "notmuch help" as follows: # # Usage: notmuch [args...] # # Where and [args...] are as follows: # # setup # # new # # search [options] [...] # # show # # reply # # tag +|- [...] [--] [...] # # dump [] # # restore # # help [] _notmuch() { local current previous commands help_options previous=${COMP_WORDS[COMP_CWORD-1]} current="${COMP_WORDS[COMP_CWORD]}" commands="setup new search show reply tag dump restore help" help_options="setup new search show reply tag dump restore search-terms" search_options="--max-threads= --first= --sort=" COMPREPLY=() case $COMP_CWORD in 1) COMPREPLY=( $(compgen -W "${commands}" -- ${current}) ) ;; 2) case $previous in help) COMPREPLY=( $(compgen -W "${help_options}" -- ${current}) ) ;; search) COMPREPLY=( $(compgen -W "${search_options}" -- ${current}) ) ;; esac ;; esac } complete -o default -o bashdefault -F _notmuch notmuch