diff options
Diffstat (limited to 'contrib/completions/bash/bitcoind.bash')
-rw-r--r-- | contrib/completions/bash/bitcoind.bash | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/contrib/completions/bash/bitcoind.bash b/contrib/completions/bash/bitcoind.bash new file mode 100644 index 0000000000..c11d99ef31 --- /dev/null +++ b/contrib/completions/bash/bitcoind.bash @@ -0,0 +1,56 @@ +# bash programmable completion for bitcoind(1) and bitcoin-qt(1) +# Copyright (c) 2012-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. + +_bitcoind() { + local cur prev words=() cword + local bitcoind + + # save and use original argument to invoke bitcoind for -help + # it might not be in $PATH + bitcoind="$1" + + COMPREPLY=() + _get_comp_words_by_ref -n = cur prev words cword + + case "$cur" in + -conf=*|-pid=*|-loadblock=*|-rpccookiefile=*|-wallet=*) + cur="${cur#*=}" + _filedir + return 0 + ;; + -datadir=*) + cur="${cur#*=}" + _filedir -d + return 0 + ;; + -*=*) # prevent nonsense completions + return 0 + ;; + *) + + # only parse -help if sensible + if [[ -z "$cur" || "$cur" =~ ^- ]]; then + local helpopts + helpopts=$($bitcoind -help 2>&1 | awk '$1 ~ /^-/ { sub(/=.*/, "="); print $1 }' ) + COMPREPLY=( $( compgen -W "$helpopts" -- "$cur" ) ) + fi + + # Prevent space if an argument is desired + if [[ $COMPREPLY == *= ]]; then + compopt -o nospace + fi + return 0 + ;; + esac +} && +complete -F _bitcoind bitcoind bitcoin-qt + +# 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 |