From e2d66136d327b2b5544694f4df339cd38db287ff Mon Sep 17 00:00:00 2001 From: Tomas Stary Date: Thu, 18 Jan 2018 21:08:54 +0100 Subject: [PATCH] adding the bash completition script for the client --- contrib/lightning-cli.bash-completion | 48 +++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 contrib/lightning-cli.bash-completion diff --git a/contrib/lightning-cli.bash-completion b/contrib/lightning-cli.bash-completion new file mode 100644 index 000000000..038b7e7db --- /dev/null +++ b/contrib/lightning-cli.bash-completion @@ -0,0 +1,48 @@ +# bash programmable completion for lncli +# copy to /etc/bash_completion.d and restart your shell session +# Copyright (c) by Andreas M. Antonopoulos +# Distributed under the MIT software license, see the accompanying +# file COPYING or http://www.opensource.org/licenses/mit-license.php. +# modified by Tomas Stary (2018) for lightning-cli + +_lightning_cli() { + local cur prev words=() cword + local lightning_cli + + # lightning_cli might not be in $PATH + lightning_cli="$1" + + COMPREPLY=() + _get_comp_words_by_ref -n = cur prev words cword + + case "$cur" in + -*=*) # prevent nonsense completions + return 0 + ;; + *) + local helpopts globalcmds + + + # get the global options, starting with -- + if [[ -z "$cur" || "$cur" =~ ^- ]]; then + globalcmds=$($lightning_cli --help 2>&1 | awk '$1 ~ /^-/ { sub(/,/, ""); print $1}') + fi + + + # get the regular commands + if [[ -z "$cur" || "$cur" =~ ^[a-z] ]]; then + helpopts=$($lightning_cli help 2>/dev/null | awk '{print $4}' | sed 's@[,"]@@g') + fi + + COMPREPLY=( $( compgen -W "$helpopts $globalcmds" -X "*," -- "$cur" ) ) + esac +} && +complete -F _lightning_cli lightning-cli + +# Local variables: +# mode: shell-script +# sh-basic-offset: 4 +# sh-indent-comment: t +# indent-tabs-mode: nil +# End: +# ex: ts=4 sw=4 et filetype=sh