diff options
Diffstat (limited to 'etc/bash_completion.d/cil')
-rw-r--r-- | etc/bash_completion.d/cil | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/etc/bash_completion.d/cil b/etc/bash_completion.d/cil new file mode 100644 index 0000000..3a57087 --- /dev/null +++ b/etc/bash_completion.d/cil @@ -0,0 +1,79 @@ +# +# Bash Completion support for cil. +# +# Copyright (c) 2008 Andrew Chilton <andychilton@gmail.com> +# +# 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/>. +# + +__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 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 |