# # Bash Completion support for cil. # # Copyright (c) 2008 Andrew Chilton # # 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 . # __issues() { ls -1 issues/i_*.cil 2>/dev/null | sed -e 's/^issues\/i_//; s/\.cil$//' } __comments() { ls -1 issues/c_*.cil 2>/dev/null | sed -e 's/^issues\/c_//; s/\.cil$//' } __attachments() { ls -1 issues/a_*.cil 2>/dev/null | sed -e 's/^issues\/a_//; s/\.cil$//' } _cil() { local cur prev opts # constants opts="--help --version --path --status --label --filename --is-open --is-closed --assigned-to --created-by" commands="init add summary list show status depends-on precedes edit comment attach extract" COMPREPLY=() cur=${COMP_WORDS[COMP_CWORD]} prev=${COMP_WORDS[COMP_CWORD-1]} # easy options first if [[ ${cur} == -* ]] ; then COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) ) return 0 fi # check for a command first if [[ ${prev} == 'cil' ]] ; then COMPREPLY=( $(compgen -W "${commands}" -- ${cur}) ) return 0 fi # check for the various commands case "${prev}" in show|status|edit|comment|attach) local issues=$( __issues ) COMPREPLY=( $(compgen -W "${issues}" -- ${cur}) ) return 0 ;; extract) local attachments=$( __attachments ) COMPREPLY=( $(compgen -W "${attachments}" -- ${cur}) ) return 0 ;; *) ;; esac # for debugging - comment in/out when necessary #COMPREPLY=( $(compgen -W "prev=${prev} cur=${cur}" -- ) ) #return 0 } complete -F _cil cil