You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
57 lines
1.4 KiB
57 lines
1.4 KiB
#compdef zerotier-cli |
|
#autoload |
|
|
|
|
|
_get_network_ids () |
|
{ |
|
if [[ "$OSTYPE" == "darwin"* ]]; then |
|
COMPREPLY=($(compgen -W "$(ls -1 /Library/Application\ Support/ZeroTier/One/networks.d | cut -c 1-16)" -- ${cur})) |
|
else |
|
COMPREPLY=($(compgen -W "$(ls -1 /var/lib/zerotier-one/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})) |
|
} |
|
|
|
_zerotier-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 _zerotier-cli_completions zerotier-cli |
|
|
|
|
|
|