home *** CD-ROM | disk | FTP | other *** search
- # bash completion for heimdal
-
- have ktutil && {
- _heimdal_principals()
- {
-
- COMPREPLY=( $( compgen -W "$( kadmin -l dump 2>/dev/null | \
- awk '{print $1}' )" -- "$cur" ) )
- }
-
- _heimdal_realms()
- {
-
- COMPREPLY=( $( compgen -W "( kadmin -l dump 2>/dev/null | \
- awk '{print $1}' | awk -F@ '{print $2}' )" -- "$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 split=false
-
- COMPREPLY=()
- _get_comp_words_by_ref cur prev
-
- _split_longopt && split=true
-
- case $prev in
- -p|--principal)
- _heimdal_principals
- return 0
- ;;
- -e|--enctype)
- _heimdal_encodings
- return 0
- ;;
- -a|--admin-server)
- _known_hosts_real "$cur"
- return 0
- ;;
- -r|--realm)
- _heimdal_realms
- return 0
- ;;
- -s|-k|--srvtab|--keytab)
- _filedir
- return 0
- ;;
- esac
-
- $split && return 0
-
- 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
- }
-
- # Local variables:
- # mode: shell-script
- # sh-basic-offset: 4
- # sh-indent-comment: t
- # indent-tabs-mode: nil
- # End:
- # ex: ts=4 sw=4 et filetype=sh
-