[Bash-completion-commits] ./current r1285: completion for heimdal
Guillaume Rousse
guillomovitch at zarb.org
Tue Jan 20 20:52:41 UTC 2009
------------------------------------------------------------
revno: 1285
committer: Guillaume Rousse <guillomovitch at zarb.org>
branch nick: current
timestamp: Tue 2009-01-20 21:52:41 +0100
message:
completion for heimdal
added:
to_review/heimdal
-------------- next part --------------
=== added file 'to_review/heimdal'
--- a/to_review/heimdal 1970-01-01 00:00:00 +0000
+++ b/to_review/heimdal 2009-01-20 20:52:41 +0000
@@ -0,0 +1,158 @@
+# -*- mode: shell-script; sh-basic-offset: 8; indent-tabs-mode: t -*-
+# ex: ts=8 sw=8 noet filetype=sh
+#
+# bash completion for heimdal
+
+have ktutil && {
+_heimdal_principals()
+{
+
+ COMPREPLY=( $( kadmin -l dump 2>/dev/null | awk '{print $1}' | \
+ grep "^$cur" ) )
+}
+
+_heimdal_realms()
+{
+
+ COMPREPLY=( $( kadmin -l dump 2>/dev/null | awk '{print $1}' | \
+ awk -F @ '{print $2}' | grep "^$cur" ) )
+}
+
+_heimdal_encodings()
+{
+
+ COMPREPLY=( $( compgen -W 'des-cbc-mcrc des-cbc-md4 des-cbc-md5 \
+ des3-cbc-sha1 arcfour-hmac-md5 aes128-cts-hmac-sha1-96 \
+ aes256-cts-hmac-sha1-96' -- $cur ) )
+}
+
+
+_ktutil()
+{
+ local cur prev command options
+
+ COMPREPLY=()
+ cur=`_get_cword`
+ prev=${COMP_WORDS[COMP_CWORD-1]}
+
+ case $prev in
+ -p)
+ _heimdal_principals
+ return 0
+ ;;
+ -e)
+ _heimdal_encodings
+ return 0
+ ;;
+ -a)
+ _known_hosts
+ return 0
+ ;;
+ -r)
+ _heimdal_realms
+ return 0
+ ;;
+ -@(s|k))
+ _filedir
+ return 0
+ ;;
+ esac
+
+ if [[ "$cur" == *=* ]]; then
+ prev=${cur/=*/}
+ cur=${cur/*=/}
+ case "$prev" in
+ --principal)
+ _heimdal_principals
+ return 0
+ ;;
+ --enctype)
+ _heimdal_encodings
+ return 0
+ ;;
+ --admin-server)
+ _known_hosts
+ return 0
+ ;;
+ --realm)
+ _heimdal_realms
+ return 0
+ ;;
+ --@(srv|key)tab)
+ _filedir
+ return 0
+ ;;
+ esac
+ fi
+
+ commands='add change copy get list remove rename purge srvconvert \
+ srv2keytab srvcreate key2srvtab'
+
+ for (( i=1; i < COMP_CWORD; i++ )); do
+ case ${COMP_WORDS[i]} in
+ -@(k|-keytab))
+ i=$(($i+1))
+ ;;
+ -*)
+ ;;
+ *)
+ command=${COMP_WORDS[i]}
+ break
+ ;;
+ esac
+ done
+
+ if [[ "$cur" == -* ]]; then
+ case $command in
+ add)
+ options='-p --principal= -V -e --enctype= -w \
+ --password= -r --random -s --no-salt \
+ -h --hex'
+ ;;
+ change)
+ options='-r --realm= -a --admin-server -s \
+ --server-port='
+ ;;
+ get)
+ options='-p --principal= -e --enctype= -r \
+ --realm= -a --admin-server= -s server \
+ --server-port='
+ ;;
+ list)
+ options='--keys --timestamp'
+ ;;
+ remove)
+ options='-p --principal= -V --kvno -e \
+ --enctype='
+ ;;
+ purge)
+ options='--age='
+ ;;
+ @(srv2keytab|key2srvtab))
+ options='-s --srvtab='
+ ;;
+ *)
+ options='-k --keytab= -v --verbose --version \
+ -v --help'
+ ;;
+ esac
+ COMPREPLY=( $( compgen -W "$options" -- $cur ) )
+ else
+ case $command in
+ copy)
+ _filedir
+ ;;
+ get)
+ _heimdal_principals
+ ;;
+ rename)
+ _heimdal_principals
+ ;;
+ *)
+ COMPREPLY=( $( compgen -W "$commands" -- $cur ) )
+ ;;
+ esac
+ fi
+}
+complete -F _ktutil ktutil
+}
More information about the Bash-completion-commits
mailing list