mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-01-25 10:43:19 -03:00
360b917674
This naming scheme supports auto-detection and on-demand loading of completions.
See
ba109693ee/README.md (faq)
,
section "Where should I put it to be sure that interactive bash shells will find it and source it".
Previously, distro package maintainers had to rename these files manually.
57 lines
1.6 KiB
Bash
57 lines
1.6 KiB
Bash
# bash programmable completion for bitcoin-tx(1)
|
|
# Copyright (c) 2016-2022 The Bitcoin Core developers
|
|
# Distributed under the MIT software license, see the accompanying
|
|
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
|
|
|
_bitcoin_tx() {
|
|
local cur prev words=() cword
|
|
local bitcoin_tx
|
|
|
|
# save and use original argument to invoke bitcoin-tx for -help
|
|
# it might not be in $PATH
|
|
bitcoin_tx="$1"
|
|
|
|
COMPREPLY=()
|
|
_get_comp_words_by_ref -n =: cur prev words cword
|
|
|
|
case "$cur" in
|
|
load=*:*)
|
|
cur="${cur#load=*:}"
|
|
_filedir
|
|
return 0
|
|
;;
|
|
*=*) # prevent attempts to complete other arguments
|
|
return 0
|
|
;;
|
|
esac
|
|
|
|
if [[ "$cword" == 1 || ( "$prev" != "-create" && "$prev" == -* ) ]]; then
|
|
# only options (or an uncompletable hex-string) allowed
|
|
# parse bitcoin-tx -help for options
|
|
local helpopts
|
|
helpopts=$($bitcoin_tx -help | sed -e '/^ -/ p' -e d )
|
|
COMPREPLY=( $( compgen -W "$helpopts" -- "$cur" ) )
|
|
else
|
|
# only commands are allowed
|
|
# parse -help for commands
|
|
local helpcmds
|
|
helpcmds=$($bitcoin_tx -help | sed -e '1,/Commands:/d' -e 's/=.*/=/' -e '/^ [a-z]/ p' -e d )
|
|
COMPREPLY=( $( compgen -W "$helpcmds" -- "$cur" ) )
|
|
fi
|
|
|
|
# Prevent space if an argument is desired
|
|
if [[ $COMPREPLY == *= ]]; then
|
|
compopt -o nospace
|
|
fi
|
|
|
|
return 0
|
|
} &&
|
|
complete -F _bitcoin_tx bitcoin-tx
|
|
|
|
# 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
|