summaryrefslogtreecommitdiff
path: root/etc/bash_completion.d/cil
diff options
context:
space:
mode:
Diffstat (limited to 'etc/bash_completion.d/cil')
-rw-r--r--etc/bash_completion.d/cil79
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