diff --git a/contrib/eclair-cli.bash-completion b/contrib/eclair-cli.bash-completion new file mode 100644 index 000000000..758fb1344 --- /dev/null +++ b/contrib/eclair-cli.bash-completion @@ -0,0 +1,39 @@ +# bash completion for eclair-cli +# copy to /etc/bash_completion.d/ +# created by Stadicus + +_eclair-cli() +{ + local cur prev opts cmds + + # eclair-cli might not be in $PATH + local eclaircli + ecli="$1" + + COMPREPLY=() + cur="${COMP_WORDS[COMP_CWORD]}" + prev="${COMP_WORDS[COMP_CWORD-1]}" + + case "$cur" in + -*=*) + return 0 + ;; + *) + # works fine, but is too slow at the moment. + # allopts=$($eclaircli help 2>&1 | awk '$1 ~ /^"/ { sub(/,/, ""); print $1}' | sed 's/[":]//g') + allopts="connect open peers channels channel allnodes allchannels allupdates receive send close checkpayment getinfo help" + + if ! [[ " $allopts " =~ " $prev " ]]; then # prevent double arguments + if [[ -z "$cur" || "$cur" =~ ^[a-z] ]]; then + opts=${allopts} + fi + fi + + if [[ -z "$cur" || "$cur" =~ ^- ]]; then + cmds=$($ecli 2>&1 | awk '$1 ~ /^-/ { sub(/,/, ""); print $1}') + fi + + COMPREPLY=( $(compgen -W "${cmds} ${opts}" -- ${cur}) ) + esac +} +complete -F _eclair-cli eclair-cli