1
0
Fork 0
mirror of https://github.com/ACINQ/eclair.git synced 2025-03-15 12:20:13 +01:00
eclair/contrib/eclair-cli.bash-completion

40 lines
1.4 KiB
Text
Raw Normal View History

# 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="getinfo connect open cpfpbumpfees close forceclose bumpforceclose updaterelayfee peers channels channel closedchannels allnodes allchannels allupdates findroute findroutetonode findroutebetweennodes parseinvoice payinvoice sendtonode getsentinfo createinvoice getinvoice listinvoices listpendinginvoices listreceivedpayments getreceivedinfo audit networkfees channelstats"
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