From 03a60521d41962fb3d36e8e8002e9bba51796ff6 Mon Sep 17 00:00:00 2001 From: Francois Marier Date: Sun, 29 Jun 2008 21:51:31 +1200 Subject: Imported Upstream version v0.3.0 --- etc/bash_completion.d/cil | 79 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 etc/bash_completion.d/cil (limited to 'etc') 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 +# +# 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 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 -- cgit v1.2.3