mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-01-10 11:57:28 -03:00
7075848f96
Completions are dynamically generated from the respective binary help pages. Completions should be sourced into the shell or added to $XDG_CONFIG/fish/completions.
65 lines
1.9 KiB
Fish
65 lines
1.9 KiB
Fish
# Disable files from being included in completions by default
|
|
complete --command bitcoin-tx --no-files
|
|
|
|
# Modified version of __fish_seen_subcommand_from
|
|
# Uses regex to detect cmd= syntax
|
|
function __fish_bitcoin_seen_cmd
|
|
set -l cmd (commandline -oc)
|
|
set -e cmd[1]
|
|
for i in $cmd
|
|
for j in $argv
|
|
if string match --quiet --regex -- "^$j.*" $i
|
|
return 0
|
|
end
|
|
end
|
|
end
|
|
return 1
|
|
end
|
|
|
|
# Extract options
|
|
function __fish_bitcoin_tx_get_options
|
|
set --local cmd (commandline -oc)[1]
|
|
if string match --quiet --regex -- '^-help$|-\?$' $cmd
|
|
return
|
|
end
|
|
|
|
for option in ($cmd -help 2>&1 | string match -r '^ -.*' | string replace -r ' -' '-' | string replace -r '=.*' '=')
|
|
echo $option
|
|
end
|
|
end
|
|
|
|
# Extract commands
|
|
function __fish_bitcoin_tx_get_commands
|
|
argparse 'commandsonly' -- $argv
|
|
set --local cmd (commandline -oc)[1]
|
|
set --local commands
|
|
|
|
if set -q _flag_commandsonly
|
|
set --append commands ($cmd -help | sed -e '1,/Commands:/d' -e 's/=/=\t/' -e 's/(=/=/' -e '/^ [a-z]/ p' -e d | string replace -r '\ \ ' '' | string replace -r '=.*' '')
|
|
else
|
|
set --append commands ($cmd -help | sed -e '1,/Commands:/d' -e 's/=/=\t/' -e 's/(=/=/' -e '/^ [a-z]/ p' -e d | string replace -r '\ \ ' '')
|
|
end
|
|
|
|
for command in $commands
|
|
echo $command
|
|
end
|
|
end
|
|
|
|
# Add options
|
|
complete \
|
|
--command bitcoin-tx \
|
|
--condition "not __fish_bitcoin_seen_cmd (__fish_bitcoin_tx_get_commands --commandsonly)" \
|
|
--arguments "(__fish_bitcoin_tx_get_options)" \
|
|
--no-files
|
|
|
|
# Add commands
|
|
complete \
|
|
--command bitcoin-tx \
|
|
--arguments "(__fish_bitcoin_tx_get_commands)" \
|
|
--no-files
|
|
|
|
# Add file completions for load and set commands
|
|
complete \
|
|
--command bitcoin-tx \
|
|
--condition 'string match --regex -- "(load|set)=" (commandline -pt)' \
|
|
--force-files
|