CLI: completion with aliases and alphanet

This commit is contained in:
Milo Davis 2017-10-04 16:50:55 +02:00 committed by Benjamin Canou
parent 466831c179
commit 2fa77489bc
2 changed files with 47 additions and 4 deletions

View File

@ -7,12 +7,50 @@ _tezos-client_complete()
# Tezos script
script=${COMP_WORDS[0]}
if [ -z "$(type -P $script)" ]; then
local tmp="$(alias $script)"
tmp="${tmp#*=}"
tmp="${tmp%\'}"
script="${tmp#\'}"
fi
reply=$($script bash_autocomplete "$prev_word" "$cur_word" ${COMP_WORDS[@]})
COMPREPLY=($(compgen -W "$reply"))
COMPREPLY=($(compgen -W "$reply" -- $cur_word))
return 0
}
_tezos-alphanet_complete()
{
script="${COMP_WORDS[0]}"
second="${COMP_WORDS[1]}"
cur_word="${COMP_WORDS[COMP_CWORD]}"
case "$second" in
container)
COMPREPLY=($(compgen -W "start stop status" -- $cur_word));;
node)
COMPREPLY=($(compgen -W "start stop status log" -- $cur_word));;
baker)
COMPREPLY=($(compgen -W "start stop status log" -- $cur_word));;
endorser)
COMPREPLY=($(compgen -W "start stop status log" -- $cur_word));;
client)
;;
# prev_word="${COMP_WORDS[COMP_CWORD-1]}"
# unset COMP_WORDS[0]
# echo $script client bash_autocomplete "$prev_word" "$cur_word" ${COMP_WORDS[@]:1} > /tmp/completions
# reply=$($script client bash_autocomplete "$prev_word" "$cur_word" ${COMP_WORDS[@]:1})
# COMPREPLY=$($(compgen -W "$reply" -- $cur_word));;
*)
COMPREPLY=($(compgen -W "start restart \
clear status stop kill head \
go_alpha_go shell client check_script update_script \
container node baker endorser" -- $cur_word));;
esac
return 0
}
# Register _pss_complete to provide completion for the following commands
complete -F _tezos-client_complete tezos-client
complete -F _tezos-alphanet_complete alphanet.sh

View File

@ -29,6 +29,7 @@ if type tezos-client-reset >/dev/null 2>&1 ; then tezos-client-reset; fi ;
alias tezos-client="$client" ;
alias tezos-activate-alpha="$client -block genesis activate protocol ProtoALphaALphaALphaALphaALphaALphaALphaALphaDdp3zK with fitness 1 and key dictator" ;
alias tezos-client-reset="rm -rf \"$client_dir\"; unalias tezos-client tezos-activate-alpha tezos-client-reset" ;
alias tezos-autocomplete="source \"$script_dir/bash-completion.sh\"" ;
trap tezos-client-reset EXIT ;
EOF
@ -50,4 +51,8 @@ protocol than used by the alphanet by running:
Warning: all the client data will be removed when you close this shell
or if you run this command a second time.
Activate tab completion by running:
tezos-autocomplete
EOF