58 lines
1.3 KiB
Bash
58 lines
1.3 KiB
Bash
#compdef backone-cli
|
|
#autoload
|
|
|
|
|
|
_get_network_ids ()
|
|
{
|
|
if [[ "$OSTYPE" == "darwin"* ]]; then
|
|
COMPREPLY=($(compgen -W "$(ls -1 /Library/Application\ Support/BackOne/networks.d | cut -c 1-16)" -- ${cur}))
|
|
else
|
|
COMPREPLY=($(compgen -W "$(ls -1 /var/lib/backone/networks.d | cut -c 1-16)" -- ${cur}))
|
|
fi
|
|
}
|
|
|
|
_get_network_ids_from_history ()
|
|
{
|
|
COMPREPLY=($(compgen -W "$(fc -l -1000 -1 | sed -n 's/.*\([[:xdigit:]]\{16\}\).*/\1/p')" -- ${cur}))
|
|
}
|
|
|
|
_backone-cli_completions()
|
|
{
|
|
local cur prev
|
|
|
|
cur=${COMP_WORDS[COMP_CWORD]}
|
|
prev=${COMP_WORDS[COMP_CWORD-1]}
|
|
|
|
case ${COMP_CWORD} in
|
|
1)
|
|
COMPREPLY=($(compgen -W "info listpeers peers listnetworks join leave set get listmoons orbit deorbit" -- ${cur}))
|
|
;;
|
|
2)
|
|
case ${prev} in
|
|
leave)
|
|
_get_network_ids
|
|
;;
|
|
join)
|
|
_get_network_ids_from_history
|
|
;;
|
|
set)
|
|
_get_network_ids
|
|
;;
|
|
get)
|
|
_get_network_ids
|
|
;;
|
|
*)
|
|
COMPREPLY=()
|
|
;;
|
|
esac
|
|
;;
|
|
*)
|
|
COMPREPLY=()
|
|
;;
|
|
esac
|
|
}
|
|
|
|
complete -F _backone-cli_completions backone-cli
|
|
|
|
|