mirror of
https://github.com/Gator96100/ProxSpace.git
synced 2025-03-12 04:36:22 -07:00
62 lines
1.5 KiB
Bash
62 lines
1.5 KiB
Bash
# chronyc(1) completion -*- shell-script -*-
|
|
|
|
_chronyc_command_args()
|
|
{
|
|
local -a args
|
|
args=($(compgen -W "$($1 help 2>/dev/null |
|
|
awk '/^'$prev'\s[^ []/ { gsub("\\|", " ", $2); print $2 }')"))
|
|
case $args in
|
|
\<address\>) _known_hosts_real -- "$cur" ;;
|
|
\<*) ;;
|
|
*) COMPREPLY+=($(compgen -W '${args[@]}' -- "$cur")) ;;
|
|
esac
|
|
}
|
|
|
|
_chronyc()
|
|
{
|
|
local cur prev words cword
|
|
_init_completion || return
|
|
|
|
case $prev in
|
|
--help | -*p)
|
|
return
|
|
;;
|
|
-*h)
|
|
_known_hosts_real -- "$cur"
|
|
return
|
|
;;
|
|
esac
|
|
|
|
if [[ $cur == -* ]]; then
|
|
COMPREPLY=($(compgen -W '$(_parse_usage "$1") -6' -- "$cur"))
|
|
return
|
|
fi
|
|
|
|
local i args
|
|
args=0
|
|
for ((i = 1; i < cword; i++)); do
|
|
[[ ${words[i]} != -* && ${words[i - 1]} != @(-p|-h) ]] && ((args++))
|
|
done
|
|
|
|
case $args in
|
|
0)
|
|
COMPREPLY=($(compgen -W "$($1 help 2>/dev/null |
|
|
awk '!/(^ |: *$)/ { sub("\\|", " ", $1); print $1 }')" \
|
|
-- "$cur"))
|
|
;;
|
|
1)
|
|
_chronyc_command_args "$1"
|
|
if [[ ! ${COMPREPLY-} && $prev == sources?(tats) ]]; then
|
|
# [-v] not handled by _chronyc_command_args yet
|
|
COMPREPLY=($(compgen -W '-v' -- "$cur"))
|
|
fi
|
|
;;
|
|
2)
|
|
[[ $prev == @(peer|server) ]] && _known_hosts_real -- "$cur"
|
|
;;
|
|
esac
|
|
} &&
|
|
complete -F _chronyc chronyc
|
|
|
|
# ex: filetype=sh
|