mirror of
https://github.com/Gator96100/ProxSpace.git
synced 2025-01-24 19:52:58 -08:00
121 lines
2.9 KiB
Bash
121 lines
2.9 KiB
Bash
# ktutil completion -*- shell-script -*-
|
|
|
|
_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 words cword split
|
|
_init_completion -s || return
|
|
|
|
local command commands i options
|
|
|
|
case $prev in
|
|
-p | --principal)
|
|
_heimdal_principals
|
|
return
|
|
;;
|
|
-e | --enctype)
|
|
_heimdal_encodings
|
|
return
|
|
;;
|
|
-a | --admin-server)
|
|
_known_hosts_real -- "$cur"
|
|
return
|
|
;;
|
|
-r | --realm)
|
|
_heimdal_realms
|
|
return
|
|
;;
|
|
-s | -k | --srvtab | --keytab)
|
|
_filedir
|
|
return
|
|
;;
|
|
esac
|
|
|
|
$split && return
|
|
|
|
commands='add change copy get list remove rename purge srvconvert
|
|
srv2keytab srvcreate key2srvtab'
|
|
|
|
for ((i = 1; i < cword; i++)); do
|
|
case ${words[i]} in
|
|
-k | --keytab)
|
|
((i++))
|
|
;;
|
|
-*) ;;
|
|
|
|
*)
|
|
command=${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
|
|
|
|
# ex: filetype=sh
|